【发布时间】:2018-12-14 17:21:22
【问题描述】:
我一直在处理需要从 XMLGregorianCalendar 获取日期的任务。我已将其转换为 GregorianCalendar 并尝试从中获取日期。但我发现存储在 XMLGregorianCalendar 中的原始日期与从 toGregorianCalendar 获得的日期之间存在差异,我希望日期为 UTC 格式,源时区也为 UTC。请查找代码 sn-p 以供参考。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ";
sdf.setTimeZone(TimeZone.getTimeZone("UTC"))
String date = sdf.format(xmlGregorianCalendar.toGregorianCalendar().getTime());
我想知道是否有任何方法可以从 XMLGregorianCalendar 获取具有 UTC 时区且没有任何时差的日期。以下是存储在 XMLGregorianCalendar 中的示例源日期
2018-07-06T05:11:00.050Z
在我使用 SimpleDateFormat 格式化后,我期望与字符串完全相同的日期。非常感谢您的帮助,在此先感谢!
【问题讨论】:
-
如果您的意思是
java.util.Date,它既没有格式也没有偏移量或区域,所以它不可能是“UTC 格式”。见All about java.util.date。 -
是的 java.util.Date,有没有使用 SimpleDateFormat 或 DateFormat 的方法?或任何其他获取日期和时间的替代方法,包括时区?
-
对于 UTC 的日期和时间,我建议使用
Instant或OffsetDateTime。两个班级都在java.time, the modern Java date and time API。后者可以明确地以 UTC 表示,但如果您需要的是一个时间点,前者通常就足够了。我会看看我今天晚些时候是否有时间写一个答案。 -
@Ole V.V.非常感谢!
标签: java date xmlgregoriancalendar