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

oscar Escrito por oscar 26 March 2025 523 0

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.


Comentario

Debe aceptar antes de enviar