Java LocalDate.parse的结果为;DateTimeParseException…无法分析:null";

Java LocalDate.parse的结果为;DateTimeParseException…无法分析:null";,java,java-11,Java,Java 11,我正试图解析一个日期时间戳并仅提取日期。像这样: import java.time.LocalDate; import java.time.format.DateTimeFormatter; class FormatterMain { public static void main(String[] args) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yy

我正试图解析一个日期时间戳并仅提取日期。像这样:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

class FormatterMain {
    public static void main(String[] args) {
        DateTimeFormatter formatter =
            DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssz");
        System.out.println(LocalDate.parse("2020-10-14T10:00:00Z", formatter));
    }
}
但这会导致以下例外情况:

Exception in thread "main" java.time.format.DateTimeParseException: Text '2020-10-14T10:00:00Z' could not be parsed: null
    at java.base/java.time.format.DateTimeFormatter.createError(DateTimeFormatter.java:2017)
    at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1952)
    at java.base/java.time.LocalDate.parse(LocalDate.java:428)
    at FormatterMain.main(FormatterMain.java:8)
Caused by: java.lang.NullPointerException
    at java.base/java.time.format.DateTimeFormatterBuilder$PrefixTree.prefixLength(DateTimeFormatterBuilder.java:4527)
    at java.base/java.time.format.DateTimeFormatterBuilder$PrefixTree.add0(DateTimeFormatterBuilder.java:4396)
    at java.base/java.time.format.DateTimeFormatterBuilder$PrefixTree.add(DateTimeFormatterBuilder.java:4391)
    at java.base/java.time.format.DateTimeFormatterBuilder$ZoneTextPrinterParser.getTree(DateTimeFormatterBuilder.java:4138)
    at java.base/java.time.format.DateTimeFormatterBuilder$ZoneIdPrinterParser.parse(DateTimeFormatterBuilder.java:4249)
    at java.base/java.time.format.DateTimeFormatterBuilder$CompositePrinterParser.parse(DateTimeFormatterBuilder.java:2370)
    at java.base/java.time.format.DateTimeFormatter.parseUnresolved0(DateTimeFormatter.java:2107)
    at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2036)
    at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1948)
    ... 2 more
这似乎与此问题有关:。但我堆栈中的行号与问题中的行号不匹配。感谢任何关于可能出现问题的建议

附言:


时间戳字符串末尾的“Z”?您可以通过模式字符串中的
X
获得该值。不是
z
。格式字符串中的小写字母
z
表示“时区名称”,与
PST
Pacific Standard time
类似


X
是缩短的区域偏移量。类似于
-08
Z

我想说的是,这完全是同一个问题,您只是在不相关的地方使用了一个源代码略有更改的版本。我使用java 14运行您的代码没有问题。@Holger,您是对的。升级到11.0.8修复了该问题。谢谢。你的建议(除了霍尔格的之外)也起了作用。非常感谢。
$ java -version
openjdk version "11.0.7" 2020-04-14 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.7+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.7+10-LTS, mixed mode, sharing)