Я пытаюсь запустить программу Java, но она берет часовой пояс GMT по умолчанию вместо определенного часового пояса ОС. Моя версия JDK 1.5, и ОС является Windows Server Enterprise (2007)
Windows указали Центральный часовой пояс, но когда я запускаю следующую программу, он дает мне время GMT.
import java.util.Calendar;
public class DateTest
{
public static void main(String[] args)
{
Calendar now = Calendar.getInstance();
System.out.println(now.getTimeZone());
System.out.println(now.getTime());
}
}
Вот вывод
sun.util.calendar.ZoneInfo[id="GMT",
offset=0,
dstSavings=0,
useDaylight=false,
transitions=0,
lastRule=null]
Mon Mar 22 13:46:45 GMT 2010
Обратите внимание на то, что я не хочу устанавливать часовой пояс из приложения. Я хочу это, часовой пояс, используемый JVM, должен быть тем, указанным в ОС. (Я не нахожу, что это выходит с другими серверами, которые имеют версию 1.4 JDK и Microsoft Server 2003).
Любые мысли высоко ценились бы.
Вы можете передать JVM этот параметр
-Duser.timezone
, например
-Duser.timezone=Europe/Sofia
, и это должно помочь. Установка переменной окружения TZ также помогает в Linux.