gpt4 book ai didi

java - 为什么 OffsetDateTime 不能在 Java 8 中解析 '2016-08-24T18:38:05.507+0000'

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:40:46 24 4
gpt4 key购买 nike

表达式

OffsetDateTime.parse("2016-08-24T18:38:05.507+0000")

导致以下错误:

java.time.format.DateTimeParseException: Text '2016-08-24T18:38:05.507+0000' could not be parsed at index 23

另一方面,

OffsetDateTime.parse("2016-08-24T18:38:05.507+00:00")

按预期工作。

DateTimeFormatter's doc page提到不带冒号的区域偏移量作为示例。我究竟做错了什么?我宁愿不破坏我的日期字符串来安抚 Java。

最佳答案

您正在调用以下方法。

public static OffsetDateTime parse(CharSequence text) {
return parse(text, DateTimeFormatter.ISO_OFFSET_DATE_TIME);
}

它使用 DateTimeFormatter.ISO_OFFSET_DATE_TIME 作为 DateTimeFormatter,如 javadoc 中所述, 执行以下操作:

The ISO date-time formatter that formats or parses a date-time with an offset, such as '2011-12-03T10:15:30+01:00'.

如果你想解析一个与2016-08-24T18:38:05.507+0000格式不同的日期,你应该使用OffsetDateTime#parse(CharSequence, DateTimeFormatter)。以下代码应该可以解决您的问题:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
OffsetDateTime.parse("2016-08-24T18:38:05.507+0000", formatter);

关于java - 为什么 OffsetDateTime 不能在 Java 8 中解析 '2016-08-24T18:38:05.507+0000',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39133828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com