Scala - 如何使用 ISODateTimeFormat 将 DateTime 解析为自定义格式?

Scala - How to parse DateTime to a custom format with ISODateTimeFormat?

我想将带有 ISODateTimeFormatjoda.time.DateTime 解析为以下格式 yyyy-MM-dd HH:mm:ss,其中 HH:mm:ss 被截断为全零。我已经使用 withTimeAtStartOfDay 部分实现了目标。

下面的代码导致 2019-11-28T00:00:00.000+03:00 而不是 2019-11-28 00:00:00

val dateTime: DateTime = new DateTime().minusDays(1).withTimeAtStartOfDay

我是否更正了 ISODateTimeFormat 无法实现这一点? 我尝试使用 DateTimeFormat 并且它有效但想了解是否有更好的方法。

val timeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")
    println(dateTime.toString(timeFormatter)) // 2019-11-28 00:00:00

首先,您真的不应该再使用 JodaTime,只需使用 java.time 中的 类(JodaTime 已集成到 Java 8)。

其次,您基本上只想处理日期。然后你可以简单地使用 LocalDate 并以你的格式输出一个固定的文本部分,因为你知道它总是 "00:00:00":

import java.time._
import java.time.format._

val yesterday = LocalDate.now.minusDays(1)

println(DateTimeFormatter.ISO_LOCAL_DATE.format(yesterday) + " 00:00:00")