如何以毫秒为单位解析ZonedDateTime

Jira通过REST API向我提供以下日期格式:
2021-01-21T11:08:45.000+0100

如何在Java中将其解析为LocalDateTime

我试过

ZonedDateTime.parse("2021-01-21T11:08:45.000+0100", DateTimeFormatter.ISO_OFFSET_DATE_TIME);

或此:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
ZonedDateTime.parse("2021-01-21T11:08:45.000+0100"), formatter);

结果为DateTimeParseException


解决方案

由于您的值中的区域偏移量的格式为+0100,因此无法使用任何预定义的格式化程序(如DateTimeFormatter.ISO_OFFSET_DATE_TIME)对其进行解析,因为它预期其格式为+01:00

您可以使用模式"yyyy-MM-dd'T'HH:mm:ss.SSSZ"

解析2021-01-21T11:08:45.000+0100
ZonedDateTime.parse("2021-01-21T11:08:45.000+0100", DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ"))

DateTimeFormatter的引用是here。

相关文章