【发布时间】:2018-12-14 21:39:00
【问题描述】:
我应该使用哪种格式来解析 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:无法解析的日期: “2018-12-13T19:19:08.266120+00:00”在 java.text.DateFormat.parse(DateFormat.java:366) ... 29 省略
【问题讨论】:
-
不要使用
SimpleDateFormat。一来是出了名的麻烦,二来它不能在秒(微秒)内解析 6 位小数,它只支持毫秒。幸运的是,它也早已过时,被现代 Java 日期和时间 API java.time 的DateTimeFormatter所取代。 -
我无法重现您的错误。我得到
Thu Dec 13 20:23:34 CET 2018。结果显然不正确,所以我会更喜欢这个例外。
标签: java scala simpledateformat iso8601