Форматирование Java 8 datetime ddMMyyyyHHmmssSSS дает ошибку Текст '05052021000000000' не может быть проанализирован в индексе 4

Я пытаюсь разобрать строку "05052021000000000" к LocalDateTime объект, использующий шаблон, но получающий ошибку Exception in thread "main" java.time.format.DateTimeParseException: Text '05052021000000000' could not be parsed at index 4

Код как ниже

      String strDate = "05052021000000000";

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("ddMMyyyyHHmmssSSS");
LocalDateTime dateTime = LocalDateTime.parse(strDate,formatter);
System.out.println(dateTime);

Когда я пытался отформатировать дату 05052021 с рисунком ddMMyyyy давая ошибку: Exception in thread "main" java.time.format.DateTimeParseException: Text '05052021' could not be parsed: Unable to obtain LocalDateTime from TemporalAccessor: {},ISO resolved to 2021-05-05 of type java.time.format.Parsed

Если я добавлю '-' между датой и временем он работает нормально.

      String strDate = "05052021-000000000";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("ddMMyyyy-HHmmssSSS");
LocalDateTime dateTime = LocalDateTime.parse(strDate,formatter);
System.out.println(dateTime);

Это также работает с шаблонами, имеющими любые разделители, например "dd:MM:yyyy-HH:mm:ss:SSS" но не с шаблонами без разделителей, таких как "ddMMyyyyHHmmssSSS"

Я использую java 1.8.0_181, а локаль по умолчанию - en_US.

0 ответов

Другие вопросы по тегам