用Java中的TimeZone将字符串中的DateTime转换为LocalDateTime



我正在尝试使用DateTimeFormatter字符串转换为LocalDateTime,其格式为:

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);

但这是一个例外。需要这方面的指导。谢谢

LocalDateTime没有区域部分,您只需要在您的情况下使用不带DateTimeFormatterZonedDateTime,因为您的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"))

最新更新