【发布时间】:2020-06-25 07:57:13
【问题描述】:
我必须将日期时间字符串转换为分区日期时间对象。我使用 DateTimeFormatter 来读取模式。根据documentation,模式中的"Z"可以接受如下格式:
- +/- 0000
- +/- 00:00
但 ZonedDateTime.parse(myDate, formatter) 仅适用于第一种情况;相反,在第二种情况下,代码会生成异常。
Execution exception[[DateTimeParseException: Text '2020-06-22T16:00:00.000+00:00' could not be parsed at index 23]]
我正在使用 Java 8。示例和代码:
"2020-06-08T12:59:10.288+0000" **work**
"2020-06-08T12:59:10.288+00:00" **doesn't work**
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
ZonedDateTime dateConvertedUTC = ZonedDateTime.parse(dateTime, formatter);
LocalDateTime dateConverted = dateConvertedUTC.withZoneSameInstant(ZoneId.of("Europe/Rome")).toLocalDateTime();
我做错了什么? 谢谢!
【问题讨论】:
标签: java spring-boot datetime java-8 zoneddatetime