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 ResultSet
utilice 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