gpt4 book ai didi

Java 8 LocalDateTime 和 DateTimeFormatter

转载 作者:行者123 更新时间:2023-11-30 08:38:29 24 4
gpt4 key购买 nike

下面的一段代码抛出异常..我在这里做错了什么吗?

DateTimeFormatter  FORMATTER    = DateTimeFormatter.ofPattern(
"ddMMuuuuHHmmssSSS"
);
String currentTime=FORMATTER.format(LocalDateTime.now());
System.out.println(currentTime);
LocalDateTime parsedTime=LocalDateTime.parse(currentTime,FORMATTER);


09042016161444380
Exception in thread "main" java.time.format.DateTimeParseException: Text '09042016161444380' could not be parsed at index 4
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
at java.time.LocalDateTime.parse(LocalDateTime.java:492)

最佳答案

作为Jon Skeet在上面的评论中提到,对于 uuuu,解析器不知道年份将在何处停止。这是因为超过 2 个 u'sy's 被解析器逐字解释。

来自 Year 的 JavaDoc:

For parsing, if the number of pattern letters is more than 2, the year is interpreted literally, regardless of the number of digits. So using the pattern "MM/dd/yyyy", "01/11/12" parses to Jan 11, 12 A.D.

因此,如果您将其从 ddMMuuuuHHmmssSSS 更改为 ddMMuuHHmmssSSSddMMyyHHmmssSSS,它应该可以正常工作,因为在这种情况下解析器知道在哪里停止正是。

关于Java 8 LocalDateTime 和 DateTimeFormatter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36515792/

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