对于 REST Web 服务,我需要返回带有时区的日期(无时间)。
ZonedDate显然, Java 中没有 a 这样的东西(只有LocalDate和ZonedDateTime),所以我使用它ZonedDateTime作为后备。
将这些日期转换为 JSON 时,我使用DateTimeFormatter.ISO_OFFSET_DATE格式化日期,效果非常好:
DateTimeFormatter formatter = DateTimeFormatter.ISO_OFFSET_DATE;
ZonedDateTime dateTime = ZonedDateTime.now();
String formatted = dateTime.format(formatter);
Run Code Online (Sandbox Code Playgroud)
2018-04-19+02:00
然而,尝试解析这样的日期......
ZonedDateTime parsed = ZonedDateTime.parse(formatted, formatter);
Run Code Online (Sandbox Code Playgroud)
...导致异常:
java.time.format.DateTimeParseException:无法解析文本“2018-04-19+02:00”:无法从 TemporalAccessor 获取 ZonedDateTime:{OffsetSeconds=7200},ISO 解析为 java 类型的 2018-04-19。时间.格式.解析
我也尝试过ISO_DATE并遇到了同样的问题。
我如何解析这样的分区日期?
或者是否有任何其他类型(在 Java Time API 内)我应该用于分区日期?