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"));