Формат, который вы используете, не является стандартным форматом, поскольку вы используете dd.mm.yyyy
для даты вместо yyyy-mm-dd
.Поэтому он не работает с форматером по умолчанию, используемым parse()
.
. Вы можете легко настроить пользовательский DateTimeFormatter
для своего особого случая:
String pattern = "dd.MM.yyyy'T'HH:mm:ss.SSSXXX";
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(pattern);
String input = "26.06.2019T00:00:00.123+03:00";
ZonedDateTime zonedDateTime = ZonedDateTime.parse(input, dtf);
Выходиз System.out.println(zonedDateTime)
будет правильный ISO-формат:
2019-06-26T00:00:00.123+03:00
Согласно комментарию Джеспера , я бы посоветовал вам использовать действующий стандартный формат и попытаться убедить того, кто поставляетвы эти строки, чтобы использовать фактический формат ISO.