【发布时间】:2019-08-24 06:21:53
【问题描述】:
我正在尝试将 xmlGregorianCalendar 转换为日期。但是输出将日期减少了一天。 以下是我使用的代码 - xmlGregorianCalendar 作为 2019-04-02Z 传递, 但是,当执行以下行时,其返回日期为 - Mon Apr 01 19:00:00 CDT 2019
private Date formatDate(XMLGregorianCalendar xmlGregorianCalendar) {
if(null != xmlGregorianCalendar ) {
return xmlGregorianCalendar.toGregorianCalendar().getTime();
}
return null;
}
不知道我做错了什么。
【问题讨论】:
-
该值被时区倾斜。您需要考虑时区。
-
04/02/2019不是有效的 XML 日期字符串。您的意思是 XML 值是2019-04-02? -
@Andreas 更新了问题 - 日期传递为 2019-04-02Z,但转换为 - Mon Apr 01 19:00:00 CDT 2019
-
我建议您开始使用
java.time.LocalDate来获取仅限日期的值,而不是过时的java.util.Date类。请参阅Convert between LocalDate and XMLGregorianCalendar 了解如何正确转换。 -
@Andreas - 使用 localDate 来获得想要的结果。谢谢
标签: java xml datetime xmlgregoriancalendar