尝试解析 ISO 8601 格式的字符串时(“2018- 02-13T10:20:12.120 0000”)使用 Java 8 的 ZonedDateTime 类和预定义的格式模式,用户可能会因偏移量中缺少冒号而遇到解析错误。
此解析问题源于 Java 8 中的一个错误,该错误阻止了 OffsetDateTime 类正确解析小时和分钟之间没有冒号的偏移量。此错误会影响“0000”等偏移量,但不会影响“00:00”。
更改输入字符串在解析之前添加缺少的冒号:
使用特定模式定义一个 DateTimeFormatter 来指导解析:
要获得更具适应性的格式化模式,请使用 DateTimeFormatterBuilder:
为了简化解析,请确保偏移量始终包含冒号,包含小时和分钟(即使为零),并使用填充零(-05:00 而不是 -5)。
以上是为什么 Java 8 的 OffsetDateTime 类很难解析带有“0000”这样的偏移量的 ISO 8601 字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!