【发布时间】:2021-01-22 11:58:50
【问题描述】:
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
【问题讨论】:
-
您的字符串包含 UTC 偏移量 (
+0100),而不是时区。因此,除非您有非常具体的要求,否则最好解析为OffsetDateTime,而不是ZonedDateTime。 -
还是这样? Parse date string without losing timezone in Groovy for Jira。我认为将代码从 the answer by daggett 转换为 Java 应该很简单。
-
谢谢@OleV.V。您的第二条评论可以解决问题。尽管如此,我不得不使用该链接的给定格式化程序。所以这两种解决方案都有效,你的建议和选择的答案。
标签: java jodatime jira-rest-api zoneddatetime localdatetime