具有模式MM/d/yyyy HH:MM:ss a的日期的java LocalDateTime解析异常



我在执行以下代码时遇到异常,我正在使用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小时(。

您几乎从不希望HHH具有与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);

最新更新