相关疑难解决方法(0)

Java:解析 ISO_DATE / ISO_OFFSET_DATE

对于 REST Web 服务,我需要返回带有时区的日期(无时间)

ZonedDate显然, Java 中没有 a 这样的东西(只有LocalDateZonedDateTime),所以我使用它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 内)我应该用于分区日期?

java iso date timezone-offset java-time

6
推荐指数
2
解决办法
5220
查看次数

标签 统计

date ×1

iso ×1

java ×1

java-time ×1

timezone-offset ×1