java - java.time 中的 Resoverstyle.STRICT 错误

标签 java java-time

<分区>

要么我不太了解 java.time 中解析器样式的作用,要么存在错误。

我有以下代码(在 Scala 中):

import java.sql.Timestamp
import java.time.format.{DateTimeFormatter, ResolverStyle}
import java.time.ZonedDateTime

val str = "2016-07-11T05:45:44.552+04:00"
val iso1 = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX")
val iso2 = iso1.withResolverStyle(ResolverStyle.STRICT)

Timestamp.from(ZonedDateTime.parse(str, iso1).toInstant) // works fine
Timestamp.from(ZonedDateTime.parse(str, iso2).toInstant) // nope!

第一个版本有效,第二个版本抛出以下异常 java.time.format.DateTimeParseException。我不明白的是为什么。我认为日期和时间有效。

参见:https://docs.oracle.com/javase/8/docs/api/java/time/format/ResolverStyle.html#STRICT

最佳答案

这是不正确的 ISO 格式,只需使用 DateTimeFormatter.ISO_DATE_TIME

关于java - java.time 中的 Resoverstyle.STRICT 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38300754/

相关文章:

java - spring cloud aws多个sqs监听器

java - Hibernate 5 :- org. hibernate.MappingException: 未知实体

java - 如何使用 LocalDate 设置月份和年份?

java - 如何使用 Locale 将三个数字解析为 LocalDate?

java - 有没有办法表达 TemporalAmount 的 "sign"?

java - 转换带有序数的日期(第 11、22 等)

java - 如何初始化一个二维数组?

java - 判断一个矩形是否与一条线相接

java - 从我的应用程序读取 jsp 页面输出

java - 在 java.time (Java 8) 中正确地将时间转换为毫秒