DateTimeParseException: текст не может быть проанализирован: невозможно получить LocalDateTime из TemporalAccessor

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

Он печатает ошибку:

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

Соответствующее сообщение выглядит так, как будто все значения проанализированы правильно, но в любом случае я вижу ошибку.

Как заставить его работать?


person gstackoverflow    schedule 02.05.2017    source источник
comment
LocalDate или LocalDateTime? Вы указываете часы и т. д. в своем форматере   -  person Robin Topper    schedule 02.05.2017
comment
у меня работает нормально!   -  person ΦXocę 웃 Пepeúpa ツ    schedule 02.05.2017
comment
Исключение указывает на то, что вы пытаетесь проанализировать файл LocalDateTime. Код, который у вас есть в вашем вопросе, работает   -  person Robin Topper    schedule 02.05.2017
comment
сорри, ребята, исправил   -  person gstackoverflow    schedule 02.05.2017
comment
Деталь, которую следует отметить в сообщении об ошибке, — HourOfAmPm=8. Время суток не указано...   -  person Ole V.V.    schedule 02.05.2017


Ответы (1)


Я могу только воспроизвести исключение, которое вы получаете, когда я пытаюсь разобрать LocalDateTime, поэтому я предполагаю, что вы этого хотите.

Ваша ошибка заключается в использовании hh (часы-час-утра-pm) вместо HH (час-день). Это работает:

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

И печатает:

2017-02-02T08:59:12
person Robin Topper    schedule 02.05.2017
comment
Спасибо, моя ошибка была в шаблоне года, я использовал недельный год YYYY вместо yyyy - person Roman Nazarevych; 05.07.2018