Преобразование DateTime в String в LocalDateTime с TimeZone в Java

Я пытаюсь преобразовать строку в формате: 2020-11-23T14: 28: 45.237Z в LocalDateTime, используя DateTimeFormatter, как показано ниже:

       String dateTimeInString = "2020-11-23T14:28:45.237Z";

final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSZ");
LocalDateTime timestamp = LocalDateTime.parse(dateTimeInString, formatter);

Но это исключение. Нужен совет по этому поводу. Благодаря!

2 ответа

LocalDateTime не имеет части зоны, вам нужно использовать ZonedDateTime без DateTimeFormatter только в вашем случае, потому что ваш dateTimeInString может быть проанализирован по умолчанию ZonedDateTime:

ZonedDateTime zdt = ZonedDateTime.parse(dateTimeInString);

Ваше значение даты и времени ("2020-11-23T14: 28: 45.237Z") имеет часть зоны, и вам нужно использовать ZoneDateTime для анализа даты и времени зоны, потому что в LocaleDateTime нет информации о зоне:

String dateTimeInString = "2020-11-23T14:28:45.237Z";
ZonedDateTime zdt = ZonedDateTime.parse(dateTimeInString);
System.out.println(zdt.format(DateTimeFormatter.ofPattern("MM/dd/uuuu HH:mm:ss"))
Другие вопросы по тегам