Java LocalDateTime 格式化程序问题

Java LocalDateTime Formatter Issue

我目前正在使用 Java LocalDateTime Formatters,我想从字符串中解析日期。我将问题归结为以下代码。这是正确使用格式化程序来创建此模式的字符串,但它无法读取完全相同的字符串。我很难找出为什么会这样。

    public static void main(String args[]) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");
        String stringTime = LocalDateTime.now().format(formatter);
        System.out.println(stringTime);
        LocalDateTime dateTime = LocalDateTime.parse(stringTime, formatter);
        System.out.println(dateTime);
    }

是什么让我更加困惑,如果我像下面的代码一样在模式中插入一个字符,该函数将起作用并将日期转换为字符串并返回。

    public static void main(String args[]) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmm-ssSSS");
        String stringTime = LocalDateTime.now().format(formatter);
        System.out.println(stringTime);
        LocalDateTime dateTime = LocalDateTime.parse(stringTime, formatter);
        System.out.println(dateTime);
    }

我得到以下堆栈跟踪

Exception in thread "main" java.time.format.DateTimeParseException: Text '20220421154548090' 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)

我很乐意在这里提供一些建议。

在@deHaar 的要求下,我尝试了不同的 Java- 版本。对于 zulu-8,这个问题出现了,对于像 zulu-17 这样的更高版本,代码工作得很好。所以我将不得不使用更高版本或找到解决方法。感谢您的回复。