Невозможно преобразовать дату и время в LocalDateTime [Java] - PullRequest
2 голосов
/ 11 июля 2019

Я пытаюсь преобразовать строку Wed July 2019 10:53 PM в LocalDateTime объект, используя следующий код:

String dateAndTimeAsStr = "Wed July 2019 10:53 PM";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE MMMM yyyy h:mm a");
LocalDateTime dateAndTimeAsLocalDateTime = LocalDateTime.parse(dateAndTimeAsStr, formatter);

Тем не менее, когда я запускаю этот код, я получаю следующую ошибку:

Exception in thread "main" java.time.format.DateTimeParseException: Text 'Wed July 2019 10:53 PM' could not be parsed: Unable to obtain LocalDateTime from TemporalAccessor: {DayOfWeek=3, MonthOfYear=7, Year=2019},ISO resolved to 22:53 of type java.time.format.Parsed

Изменение yyyy на YYYY и h на hh не дало никаких других результатов.

Согласно этому ответу по SO и документации кажется, что мой шаблон соответствует предоставленному тексту.

Что я делаю не так?

Спасибо

1 Ответ

5 голосов
/ 11 июля 2019

Отсутствует день месяца

В вашей входной строке отсутствует день месяца.Он говорит «июль 2019», но не то, что день в течение июля.

Форматированная строка даты необратима (так как вы можете отформатировать существующий LocalDateTime с использованием средства форматирования, но не можете проанализировать его обратно).так как отсутствует значение дня.

...