Как установить JVM TimeZone Правильно

Я пытаюсь запустить программу 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).

Любые мысли высоко ценились бы.

125
задан Shashank Agrawal 3 June 2016 в 11:54
поделиться

1 ответ

Вы можете передать JVM этот параметр

-Duser.timezone

, например

-Duser.timezone=Europe/Sofia

, и это должно помочь. Установка переменной окружения TZ также помогает в Linux.

200
ответ дан 24 November 2019 в 00:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: