将字符串中的datetime转换为java中带时区的localdatetime

wgeznvg7  于 2021-07-08  发布在  Java
关注(0)|答案(2)|浏览(718)

**结案。**此问题不可复制或由打字错误引起。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

上个月关门了。
改进这个问题
我正在尝试使用datetimeformatter将格式为:2020-11-23t14:28:45.237z的字符串转换为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);

但这是个例外。我需要你的指导。谢谢!

q3qa4bjr

q3qa4bjr1#

日期时间值(“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"))
pw136qt2

pw136qt22#

LocalDateTime 没有区域部分,你需要使用 ZonedDateTime 没有 DateTimeFormatter 只有在你的情况下,因为你的 dateTimeInString 可以按的默认模式进行分析 ZonedDateTime :

ZonedDateTime zdt = ZonedDateTime.parse(dateTimeInString);

相关问题