gpt4 book ai didi

java - DateTimeFormatter 无法解析自己生成的字符串

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:12:02 26 4
gpt4 key购买 nike

我在解析以下日期格式时遇到问题:

2017-03-27T08:27:43.326TGMT-05:00

我有代码在哪里 DateTimeFormatterZonedDateTime 中生成字符串作为下一步,我试图再次解析这个字符串并创建 ZonedDateTime例如,但是它并没有像我预期的那样工作:

String pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'T'ZZZZ";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
String dateStr = ZonedDateTime.now().format(formatter);

System.out.println(dateStr);

ZonedDateTime dateParsed = ZonedDateTime.parse(dateStr, formatter);
System.out.println(dateParsed);

上面的代码产生:

2017-03-27T08:27:43.326TGMT-05:00
java.time.format.DateTimeParseException: Text '2017-03-27T08:27:43.326TGMT-05:00' could not be parsed: String index out of range: 33

at java.time.format.DateTimeFormatter.createError(DateTimeFormatter.java:1920)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1855)

寻找有关如何提出能够创建 ZonedDateTime 的工作模式的任何见解来自 2017-03-27T08:27:43.326TGMT-05:00 的实例

最佳答案

为了了解问题所在,我查看了引发异常的 DateTimeFormatterBuilder.java:3563 的源代码。

我看到有一段代码甚至可以解析 GMT-05:00 之后的秒部分。

所以它只有在你添加秒部分时才会起作用......

ZonedDateTime dateParsed = ZonedDateTime.parse(dateStr+":00", formatter);

关于java - DateTimeFormatter 无法解析自己生成的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43047947/

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