Cómo actualizar manualmente las zonas horarias en Java con tzupdater
Aprende cómo actualizar manualmente las zonas horarias en Java utilizando tzupdater. Sigue esta guía paso a paso para mantener tu configuración actualizada
Las zonas horarias en Java se actualizan a partir de la base de datos IANA (tz database). Sin embargo, cuando Oracle no lanza actualizaciones frecuentes de Java, es necesario actualizar manualmente las reglas de zona horaria utilizando la herramienta tzupdater.
Antes de iniciar
Debemos tener instalado o actualizado en nuestro computador java, te explico en los siguientes post:
Verificar hora en Java
Primero vamos a crear un script en java en donde verificaremos la zona horaria y la versión de java.
Vamos a crear el archivo 📜 TestDateTimeZone.java
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class TestDateTimeZone {
public static void main(String[] args) {
TimeZone cst = TimeZone.getTimeZone("America/Mexico_City");
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm_ss a Z");
sdf.setTimeZone(cst);
Date horaActual = new Date();
String horaActualCST = sdf.format(horaActual);
System.out.println("hora actual en CTS: " + horaActualCST);
System.out.println("java.version: " + System.getProperty("java.version"));
}
}
Respuesta:
hora actual en CTS: 12/09/2025 12:09_52 p. m. -0500
java.version: 11.0.15
Para el ejemplo, la hora debería ser 11_09_52 a. m. -0600
Descargar tzupdater
Oracle proporciona la herramienta tzupdater
para actualizar las zonas horarias en las distribuciones de Java. Puedes descargar la versión más reciente desde:
https://www.oracle.com/java/technologies/javase-tzupdater-downloads.html
Nota: Necesitarás una cuenta de Oracle para acceder a la descarga.
Verificar la versión actual de las zonas horarias
Antes de actualizar, es recomendable verificar la versión actual de las zonas horarias en tu instalación de Java. Para ello, ejecuta el siguiente comando en la terminal o en el símbolo del sistema:
java -Djava.locale.providers=CLDR -jar tzupdater.jar -V
Este comando mostrará la versión actual de las zonas horarias instaladas en tu sistema.
tzupdater version 2.3.3-b02
JRE tzdata version: tzdata2025b
tzupdater tool would update with tzdata version: tzdata2025b
Actualizar las zonas horarias en Java
Para actualizar las zonas horarias en la instalación de Java, ejecuta:
java -jar tzupdater.jar -l -v
Este comando actualizará las reglas de zona horaria en la instalación de Java predeterminada en tu sistema.
Using https://www.iana.org/time-zones/repository/tzdata-latest.tar.gz as source for tzdata bundle.
java.home: C:\Program Files\Java\jdk1.8.0_202\jre
java.vendor: Oracle Corporation
java.version: 1.8.0_202
tzupdater version 2.3.3-b02
JRE tzdata version: tzdata2018g
Downloaded file to C:\Users\OFERNA~1\AppData\Local\Temp\tz.tmp_2\tzdata.tar.gz
tzupdater tool would update with tzdata version: tzdata2025b
Warning: Source directory does not contain source file: pacificnew
Compiling TZDB version 2025b
Building rules
Building zone Africa/Abidjan
...
...
Linking alias WET to Europe/Lisbon
Linking alias Zulu to Etc/UTC
Outputting tzdb file: C:\Program Files\Java\jdk1.8.0_202\jre\lib\tzdb.dat.dynamic
Renaming C:\Program Files\Java\jdk1.8.0_202\jre\lib\tzdb.dat to C:\Program Files\Java\jdk1.8.0_202\jre\lib\tzdb.dat.tzdata2018g
Renaming C:\Program Files\Java\jdk1.8.0_202\jre\lib\tzdb.dat.dynamic to C:\Program Files\Java\jdk1.8.0_202\jre\lib\tzdb.dat
Validating for : tzdata2025b
Validation complete
JRE updated to version : tzdata2025b
Verificar la actualización
Una vez realizada la actualización, puedes verificar nuevamente la versión de las zonas horarias con:
java -Djava.locale.providers=CLDR -jar tzupdater.jar -V
Si la versión mostrada corresponde a la más reciente, la actualización se ha realizado correctamente.