DateTimeFormatter 异常解析自己的打印结果

iXô*_*iXô 5 java datetime dateformatter

我不明白,我有这个代码:

DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");
System.out.println(LocalDateTime.parse(LocalDateTime.now().format(fmt), fmt));
Run Code Online (Sandbox Code Playgroud)

这生成和异常:

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)
Run Code Online (Sandbox Code Playgroud)

但是,如果我将模式更改为在日期部分和时间部分之间有一个分隔符:"yyyyMMdd_HHmmssSSS"它会按预期工作。

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

YCF*_*F_L 6

这是 Java8 中的一个错误,请检查:

JDK-8031085:DateTimeFormatter 不会使用自定义格式“yyyyMMddHHmmssSSS”解析日期

它在新版本中得到了修复。