<分区>
要么我不太了解 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