Разница в датах на отдельном сервере Java или Tomcat

У меня есть проблемы с преобразованием даты в UTC, но я могу заставить это работать на отдельной java-программе, однако при запуске того же метода на сервере у меня другая временная метка.

Вот метод, которым я должен преобразовать строковую дату в XMLGregorianCalendar в UTC.

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. Он преобразует метку времени в UTC, добавляя 5 часов к пройденной дате.

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"));

}

OutPut: DateUtil xmlGC in UTC: 2017-03-06T10:47:37.000Z.

Однако, используя тот же метод на сервере приложений tomcat на той же машине, он не преобразует дату в UTC. Я что-то здесь упускаю?

Может кто-нибудь, пожалуйста, помогите мне в этом. Заранее спасибо.

1 ответ

Установить часовой пояс Tomcat-Duser.timezone=GMT+05

Другие вопросы по тегам