在 Scala 中解析具有 ISO 格式的日期时间

Parse datetime with ISO format in Scala

我应该使用哪种格式在 Scala 中解析字符串日期(使用 ISO 8601)?

2018-12-13T19:19:08.266120+00:00

我只是尝试了一些模式但没有成功。此代码向我显示一个接近日期的字符串,但是当我尝试使用上面的字符串和时区信息时,我收到错误消息。

new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'.'SXXX").format(new Date())

结果:

2018-12-14T17:41:24.929-02:00

错误:

java.text.ParseException: Unparseable date: "2018-12-13T19:19:08.266120+00:00" at java.text.DateFormat.parse(DateFormat.java:366) ... 29 elided

DateTimeFormatter class 包含许多预定义格式,包括一些 ISO 格式。这是一个似乎适用于您的示例 String.

import java.time.LocalDateTime
import java.time.format.DateTimeFormatter._

val dts = "2018-12-13T19:19:08.266120+00:00"
LocalDateTime.parse(dts, ISO_DATE_TIME)
//res0: java.time.LocalDateTime = 2018-12-13T19:19:08.266120