timezones jre ids duser java jvm windows-server-2008 timezone jdk1.5

java - jre - Cómo configurar un TimeZone JVM correctamente



timezone ids (6)

En Windows 7 y para JDK6, tuve que agregar -Duser.timezone="Europe/Sofia" a la variable de sistema JAVA_TOOL_OPTIONS ubicada en "Mi computadora => Propiedades => Configuración avanzada del sistema => Variables de entorno".

Si ya tiene algún otro conjunto de propiedades para JAVA_TOOL_OPTIONS solo agregue un espacio y luego inserte su cadena de propiedad.

Estoy intentando ejecutar un programa Java, pero está tomando una zona horaria GMT predeterminada en lugar de una zona horaria definida por el sistema operativo. Mi versión de JDK es 1.5 y el sistema operativo es Windows Server Enterprise (2007)

Windows tiene una zona horaria central especificada, pero cuando ejecuto el siguiente programa, me da una hora 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()); } }

Aquí está la salida

sun.util.calendar.ZoneInfo[id="GMT", offset=0, dstSavings=0, useDaylight=false, transitions=0, lastRule=null] Mon Mar 22 13:46:45 GMT 2010

Tenga en cuenta que no quiero configurar la zona horaria de la aplicación. Quiero que la zona horaria utilizada por JVM sea la especificada en el sistema operativo. (No encuentro estos problemas con otros servidores que tienen la versión 1.4 de JDK y Microsoft Server 2003).

Cualquier pensamiento sería muy apreciado.


En win7, si desea establecer la zona horaria correcta como un parámetro en JRE, debe editar el archivo deployment.properties almacenado en la ruta c:/users/%username%/appdata/locallow/sun/java/deployment agregando la cadena deployment.javaws.jre.1.args=-Duser.timezone/= my_time_zone


La respuesta aceptada arriba:

-Duser.timezone="Europe/Sofia"

No funcionó para mí exactamente. Solo pude cambiar con éxito mi zona horaria cuando no tenía comillas alrededor de los parámetros:

-Duser.timezone=Europe/Sofia


Puede pasar la JVM este param

-Duser.timezone

Por ejemplo

-Duser.timezone=Europe/Sofia

y esto debería hacer el truco. Establecer la variable de entorno TZ también funciona en Linux.


Si está usando Maven :

mvn -Dexec.args="-Duser.timezone=Europe/Sofia ....."


También puede establecer la zona horaria predeterminada en su código utilizando el siguiente código.

TimeZone.setDefault(TimeZone.getTimeZone("UTC"));

A tí

TimeZone.setDefault(TimeZone.getTimeZone("Europe/Sofia"));