Saltar al contenido

Forzar la zona horaria de Java como GMT/UTC

Hola usuario de nuestra página web, tenemos la respuesta a tu búsqueda, desplázate y la encontrarás más abajo.

Solución:

El OP respondió a esta pregunta para cambiar la zona horaria predeterminada para una sola instancia de una JVM en ejecución, configure el user.timezone propiedad del sistema:

java -Duser.timezone=GMT ... 

Si necesita establecer zonas horarias específicas al recuperar objetos de fecha/hora/marca de tiempo de una base de datos ResultSetutilice la segunda forma de la getXXX métodos que requieren un Calendar objeto:

Calendar tzCal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
ResultSet rs = ...;
while (rs.next()) 
    Date dateValue = rs.getDate("DateColumn", tzCal);
    // Other fields and calculations

O, configurando la fecha en un PreparedStatement:

Calendar tzCal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
PreparedStatement ps = conn.createPreparedStatement("update ...");
ps.setDate("DateColumn", dateValue, tzCal);
// Other assignments
ps.executeUpdate();

Esto asegurará que el valor almacenado en la base de datos sea coherente cuando la columna de la base de datos no mantenga la información de la zona horaria.

El java.util.Date y java.sql.Date Las clases almacenan el tiempo real (milisegundos) en UTC. Para formatear estos en la salida a otra zona horaria, use SimpleDateFormat. También puede asociar una zona horaria con el valor mediante un objeto Calendario:

TimeZone tz = TimeZone.getTimeZone("");
//...
Date dateValue = rs.getDate("DateColumn");
Calendar calValue = Calendar.getInstance(tz);
calValue.setTime(dateValue);

Referencia útil

https://docs.oracle.com/javase/9/troubleshoot/time-zone-settings-jre.htm#JSTGD377

https://confluence.atlassian.com/kb/setting-the-timezone-for-the-java-environment-841187402.html

Además, si puede configurar la zona horaria de JVM de esta manera

System.setProperty("user.timezone", "EST");

o -Duser.timezone=GMT en los argumentos de JVM.

Tuve que configurar la zona horaria de JVM para Windows 2003 Server porque siempre devolvía GMT para la nueva fecha ();

-Duser.timezone=America/Los_Angeles

O su zona horaria apropiada. Encontrar una lista de zonas horarias resultó ser un poco desafiante también…

Aquí hay dos listas;

http://wrapper.tanukisoftware.com/doc/english/prop-timezone.html

http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=%2Frzatz%2F51%2Fadmin%2Freftz.htm

Reseñas y valoraciones

¡Haz clic para puntuar esta entrada!
(Votos: 4 Promedio: 4.8)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *