我在执行以下代码时遇到异常,我正在使用java日期时间API。
String strDate = "12/4/2018 5:26:28 PM";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/d/yyyy HH:mm:ss a", Locale.ENGLISH);
LocalDateTime localDateTime = LocalDateTime.parse(strDate, formatter);
以下是出现的异常
Exception in thread "main" java.time.format.DateTimeParseException: Text '12/4/2018 5:26:28 PM' could not be parsed at index 10
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(Test.java:20)
您的模式指定"HH",这是一天中24小时的0填充时间。您需要h
:非零填充,以及"上午-下午的时钟小时"(一天中的12小时(。
您几乎从不希望HH
或H
具有与a
相同的模式。
通常,当您遇到这样的问题时,您应该非常非常仔细地查看您的模式,并将其与文档中的描述进行比较。
将hh
用于12小时格式,并将其与05
匹配。
String strDate = "12/4/2018 05:26:27 PM";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/d/yyyy hh:mm:ss a", Locale.ENGLISH);
LocalDateTime localDateTime = LocalDateTime.parse(strDate, formatter);