This question already has answers here:
DateTimeFormatter pattern with liternal and no separator does not work

(2个答案)


在11个月前关闭。




我不明白,我有这段代码:
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");
System.out.println(LocalDateTime.parse(LocalDateTime.now().format(fmt), fmt));

这产生和异常:
Exception in thread "main" java.time.format.DateTimeParseException: Text '20200605102607066' could not be parsed at index 0
    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)
    at Test.main(AccountPasswordHistoryTypeHandler.java:102)

但是,如果我更改模式以在日期部分和时间部分之间添加分隔符:"yyyyMMdd_HHmmssSSS",则它将按预期工作。

为什么格式化程序无法解析其自身的结果?

最佳答案

这是Java8中的错误,请检查以下内容:

JDK-8031085 : DateTimeFormatter won't parse dates with custom format "yyyyMMddHHmmssSSS"

它已在新版本中修复。

关于java - DateTimeFormatter异常解析其自己的打印结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62211182/

10-12 07:03