Search code examples
javadatetimedatetime-formatlocaldate

DateTimeParseException: Text could not be parsed: Unable to obtain LocalDateTime from TemporalAccessor


LocalDateTime.parse("2017-02-02 08:59:12", DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss"));

It prints error:

java.time.format.DateTimeParseException: Text '2017-02-02 08:59:12' could not be parsed: Unable to obtain LocalDateTime from TemporalAccessor: {MinuteOfHour=59, NanoOfSecond=0, SecondOfMinute=12, MicroOfSecond=0, MilliOfSecond=0, HourOfAmPm=8},ISO resolved to 2017-02-02 of type java.time.format.Parsed

Accoeding message looks like all values parsed correct, but anyway I see error.

How to make it working?


Solution

  • I can only reproduce the exception you get when I try to parse to a LocalDateTime, so I assume that's what you want.

    Your mistake is using hh (clock-hour-of-am-pm) instead of HH (hour-of-day). This works:

    LocalDateTime ldt = LocalDateTime.parse("2017-02-02 08:59:12", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    System.out.println(ldt);
    

    And prints:

    2017-02-02T08:59:12