gpt4 book ai didi

java - 将字符串解析为 'yyyy-mm-ddThh:mm:ss.SSSZ' ISODate java

转载 作者:行者123 更新时间:2023-12-01 20:56:23 29 4
gpt4 key购买 nike

如何使用SimpleDateFormat将String转换为ISODate格式,这意味着我想最终获得java.util.Date格式的Date。

我的字符串看起来像2017-02-17T09:28:03.000Z,我想将其转换为日期格式。我可以以 Joda 日期格式执行此操作,但由于我使用 mongoDB,它不接受 joda 格式。

   String startDateString1 =  "2017-02-17T04:23:17.452Z";      
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date startDate = df.parse(startDateString1);
String newDateString = df.format(startDate);

上面的代码不起作用。

最佳答案

您的代码不起作用,因为 Z 是用于解释 RFC-822 时区的保留字符:

RFC 822 time zone: For formatting, the RFC 822 4-digit time zone format is used:

 RFC822TimeZone:
Sign TwoDigitHours Minutes
TwoDigitHours:
Digit Digit

从 Java 7 开始,您可以使用 X 来解释 ISO-8601 时区 https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html 。以下作品:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");

但是,在我的电脑上,

System.out.println(newDateString);

产生以下输出:

2017-02-17T05:23:17.452+01

或者,如果您确定只有 UTC 日期,则可以使用简单的引号转义 Z 字母:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");

这是显示的结果:

2017-02-17T04:23:17.452Z

关于java - 将字符串解析为 'yyyy-mm-ddThh:mm:ss.SSSZ' ISODate java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42298042/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com