Преобразование 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"))