如何使用 Scala 设置昨天的日期?

How to set yesterday's date using Scala?

我正在用 Scala 创建约会。

  val dafo = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'")
  val tz = TimeZone.getTimeZone("UTC")
  dafo.setTimeZone(tz)
  val endTime = dafo.format(new Date())

如何设置昨天的日期而不是今天的日期?

您可以使用日历:

val dafo = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'")
val tz = TimeZone.getTimeZone("UTC")
dafo.setTimeZone(tz)

val calendar = Calendar.getInstance()
calendar.add(Calendar.DATE, -1)
dafo.format(calendar.getTime)

JSR-310 实现:

import java.time.OffsetDateTime
import java.time.format.DateTimeFormatter

DateTimeFormatter.ISO_INSTANT.format(OffsetDateTime.now().minusDays(1L))

这是获取昨天的 date/time 并使用 java.time 对其进行格式化的方法:

import java.time.{ZonedDateTime, ZoneId}
import java.time.format.DateTimeFormatter


val yesterday = ZonedDateTime.now(ZoneId.of("UTC")).minusDays(1)
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm'Z'")
val result = formatter format yesterday

println(result)

这是另一个替代解决方案。我认为它是一个更清洁的版本。

val today = java.time.LocalDate.now

today: java.time.LocalDate = 2019-12-10

val yesterday= java.time.LocalDate.now.minusDays(1)

yesterday: java.time.LocalDate = 2019-12-09