【发布时间】:2017-07-26 02:04:50
【问题描述】:
我在将日期转换为 UTC 时遇到问题,我可以在独立的 java 程序上运行它,但是,在服务器上运行相同的方法时会给我一个不同的时间戳。
这是我将字符串日期转换为 UTC 格式的 XMLGregorianCalendar 的方法。
public static XMLGregorianCalendar convertDateToXMLGregorianCalendarInUTC(String date, String dateFormat) throws ParseException, DatatypeConfigurationException {
if (StringUtils.isBlank(date))
return null;
TimeZone timeZoneInUTC = TimeZone.getTimeZone("GMT0:00");
GregorianCalendar gregorianCalendar = new GregorianCalendar(timeZoneInUTC);
DateFormat dateFormat = new SimpleDateFormat(dateFormat);
Date dateUtil = null;
XMLGregorianCalendar xmlGregorianCalendar = null;
dateUtil = dateFormat.parse(date);
gregorianCalendar.setTime(dateUtil);
xmlGregorianCalendar = DatatypeFactory.newInstance().newXMLGregorianCalendar(gregorianCalendar);
return xmlGregorianCalendar;
}
当我在standAlone java prog上运行时使用上述方法。它通过在过去的日期上加上 5 小时来将时间戳转换为 UTC。
public static void main(String[] args) throws ParseException, DatatypeConfigurationException {
System.out.println("DateUtil xmlGC in UTC: "+DateUtil.convertDateToXMLGregorianCalendarInUTC("03/06/2017 05:47:37", "MM/dd/yyyy HH:mm:ss"));
}
输出:DateUtil xmlGC in UTC: 2017-03-06T10:47:37.000Z.
但是,在同一台机器上的 tomcat - 应用服务器上使用相同的方法时,它不会将日期转换为 UTC。我在这里错过了什么吗?,
有人可以帮我解决这个问题吗?提前致谢。
【问题讨论】:
-
如何检查tomcat版本不转换日期?使用日志?
-
@DmitryGorkovets:是的,我正在将它记录在我的应用程序日志中。
-
date时你的机器什么时候返回?+0或+5? -
@jlordo:第二个代码 sn-p 是我正在谈论的独立 java 程序。它工作正常,但当我在应用服务器上运行时使用相同的方法时它不工作。
-
@SergioLema:在应用服务器上运行时,它返回给我 +0。,返回我通过的确切日期。
标签: java date tomcat utc xmlgregoriancalendar