java - 将日期从 java.util.Date 转换为 javax.xml.datatype.XMLGregorianCalendar 时更改
问题描述
日期 2018 年 9 月 27 日星期四 00:00:00 CEST
变成
2018-09-26T22:00:00.000Z
在 XMLGregorianCalendar 中转换时
通过这种方法:
public static XMLGregorianCalendar dateToXMLGregorianCalendar(Date date) throws DatatypeConfigurationException{
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(date);
return DatatypeFactory.newInstance().newXMLGregorianCalendar(cal);
}
如何避免此日期更改?
肿瘤坏死因子
解决方案
那是相同的日期和时间。
您的第一个日期在 CEST 时区,相当于 UTC+2 您的第二个时间戳在 Z 时区呈现,相当于 UTC+0
因此,两者都意味着相同的时间点,但呈现方式不同。
GregorianCalendar 有一种更改日历时区的方法,如果您想在 CEST 日期和时间中输出,那么我建议您将日历时区更改为此。有关 API 参考,请参阅GregorianCalendar.setTimeZone。
这也取决于您如何从该日历中检索日期。如果您只是打算使用.getTime()
返回普通 Java Date 对象的方法,那么您可以通过DateTimeFormatter发送它以在您想要的任何时区输出日期。
如果您只关心日期的实际“日期”部分,并且不想使其适应各种时区,请查看LocalDate。
推荐阅读
- javascript - Javascript:用空格分割字符串,除非它用圆括号、单引号或方括号括起来
- maven - 将 setting.xml 中的 Maven 配置文件移动到 pom.xml
- perl - 在 perl 中使用 ctime 的正确方法是什么?
- javascript - CSS类活动
- docsify - Docsify 搜索插件不工作,总是不返回结果
- amazon-cloudformation - 如何使用 ScheduleExpression 手动触发 cloudwatch 规则(10 天)
- android - 如何在启用安全参数的不同导航图中重用片段?
- c# - C#浮点到二进制字符串,反之亦然
- beautifulsoup - 从谷歌搜索中使用 csv 文件中的多个搜索词检索 url。当我运行上述代码时,csv文件为空
- python - 为什么我的脚本不能始终如一地检测电子邮件正文中的内容?