У меня есть машина linux в часовом поясе UTC.
[user@test packages]$ date +'%:z %Z'
+00:00 UTC
Запуск cat /etc/localtime
также указывает на то, что мой компьютер находится в часовом поясе UTC;
[user@test ~]$ cat /etc/localtime
f2UTCTZif2UTC
UTC0
Однако, вызывая logger.info(new Date())
в приложении, работающем под управлением Tomcat под Java 1.7, возвращается что-то вроде пн 28 октября 01:51:39 HDT 2019
Это очень странно, поэтому я создал для тестирования простую Java-программу:
import java.util.Date;
class Test
{
public static void main (String args[])
{
Date dt = new Date();
System.out.println(dt);
}
}
Скомпилируйте и запустите его
[user@test]$ /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.211.x86_64/bin/javac Test.java
[user@test]$ /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.211.x86_64/bin/java Test
Mon Oct 28 02:08:49 HDT 2019
Мой вопрос заключается в том, почему моя утилита Linux возвращает дату в формате UTC, и все же мои приложения Java возвращают даты в формате HDT (я даже не знаю, что такое HDT).
Поскольку приложение, которое я поддерживаю, является устаревшим, я не могу использовать Joda Time или обновиться до Java8 или выше, так как это повлекло бы за собой множество изменений кода.