Как правильно установить часовой пояс JVM
Я пытаюсь запустить программу 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).
какие мысли будут высоко оценены.
6 ответов:
вы можете передать JVM этот парам
-Duser.timezone-Duser.timezone=Europe/Sofiaи это должно сделать трюк. Установка переменной среды TZ также делает трюк на Linux.
вы также можете установить часовой пояс по умолчанию в коде, используя следующий код.
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));Вашей
TimeZone.setDefault(TimeZone.getTimeZone("Europe/Sofia"));
принятый ответ выше:
-Duser.timezone="Europe/Sofia"не работает для меня точно. Я только смог успешно изменить свой часовой пояс, когда у меня не было кавычек вокруг параметров:
-Duser.timezone=Europe/Sofia
на windows 7 и для JDK6, я должен был добавить
-Duser.timezone="Europe/Sofia"до JAVA_TOOL_OPTIONS системная переменная, расположенная в разделе "Мой Компьютер= > Свойства= > расширенные Системные настройки= > Переменные среды".Если у вас уже есть какое-то другое свойство, установленное для
JAVA_TOOL_OPTIONSпросто добавьте пробел, а затем вставьте строку Свойства.
Если вы используете Maven:
mvn -Dexec.args="-Duser.timezone=Europe/Sofia ....."
в win7, если вы хотите установить правильный часовой пояс в качестве параметра в JRE, вы должны отредактировать файл
deployment.propertiesхранится в pathc:\users\%username%\appdata\locallow\sun\java\deploymentдобавить строкуdeployment.javaws.jre.1.args=-Duser.timezone\=my_time_zone
Comments