El presente instructivo tiene como finalidad explicar los pasos necesarios para la actualización del registro del Huso Horario en computador con sistema operativo basado en GNU/Linux.
Éste cambio es obligatorio para todos los computadores de Venezuela, para dar cumplimiento al decreto presidencia Nro 2.301, publicado Gaceta Oficial Extraordinaria N° 6.224, de fecha 18/04/2016, donde se se modifica el Huso Horario en todo el territorio de la República, entrando en vigencia el 01 de mayo de 2016. En pocas palabras, el Huso Horario que rige a Venezuela pasa de (-04:30 UTC) a (-04:00 UTC).
Aspectos Importantes:
– Cambio Hora legal: de (-04:30 UTC) pasa a (-04:00 UTC)
– Variación de la Hora legal actual: (+30 minutos)
– Fecha entrada en vigencia del cambio: (01/05/2016)
– Hora entrada en vigencia del cambio: (02:30 a.m.)
En resumen, el día domingo 01 de mayo del 2016 a las 2:30am, todos los computadores de forma automática deben incrementar 30 minutos la hora (03:00am) y cambiar el uso horario a (UTC -04:00)
Configuración:
Actualmente ya existe una actualización del paquete tzdata (al menos en las distribución debian y ubuntu) con los cambios del nuevo huso horario para Venezuela, dicho paquete puede ser descargado de los siguientes enlaces: Debian Package tzdata, en el caso de Ubuntu: tzdata 2016d-0ubuntu0.16.04
Para el caso de debian podemos verificar Debian Changelog donde nos indica los últimos cambios correpondiente al paquete y hace referencia a la resolúcion del bug reportado 821147 Venezuela to change time zone on May 1:
tzdata (2016d-0+deb8u1) stable; urgency=medium
* New upstream version, affecting the following future time stamps:
– America/Caracas. Closes: #821147.
– Asia/Magadan
– Asia/Tomsk (new timezone).
* Update translations from the sid package.
— Aurelien Jarno Fri, 22 Apr 2016 15:32:01 +0200
En nuestro caso, la configuración se efectuará en un computador con Debian 8.0:
1. Verificamos la zona horaria instalada actualmente:
root@server:/tmp# zdump -v /etc/localtime
...... /etc/localtime Sun Dec 9 06:59:59 2007 UT = Sun Dec 9 02:59:59 2007 VET isdst=0 gmtoff=-14400 /etc/localtime Sun Dec 9 07:00:00 2007 UT = Sun Dec 9 02:30:00 2007 VET isdst=0 gmtoff=-16200 /etc/localtime 9223372036854689407 = NULL /etc/localtime 9223372036854775807 = NULL
Nota: al visualizar las últimas lineas, verificamos que los cambios actuales corresponden al 09/12/2007, donde a las 2:59:59, se le restó 30 minutos a la hora legal.
/etc/localtime Sun Dec 9 06:59:59 2007 UT = Sun Dec 9 02:59:59 2007 VET isdst=0 gmtoff=-14400 /etc/localtime Sun Dec 9 07:00:00 2007 UT = Sun Dec 9 02:30:00 2007 VET isdst=0 gmtoff=-16200
2. Descargar paquete debian:
Versión Debian jessie 8.0 (tzdata_2016d-0)
root@server:/tmp# wget -c http://ftp.us.debian.org/debian/pool/main/t/tzdata/tzdata_2016d-0+deb8u1_all.deb
Versión Debian Sid (última versión del paquete tzdata_2016d-2):
root@server:/tmp# wget -c http://ftp.us.debian.org/debian/pool/main/t/tzdata/tzdata_2016d-2_all.deb
Nota: En caso de tener JAVA instalado, se hace necesario instalar tzdata-java, pero la versión 2016d-2 aún no se encuentra disponible (27/04/2016 – 12:27pm), por lo que se recomienda instalar el paquete de tzdata versión 2016d-0+deb8u1, así podrá instalar el tzdata-java versión 2016d-0+deb8u1
3. Instalamos el paquete descargado:
root@server:/tmp# dpkg -i tzdata_2016d-2_all.deb
(Leyendo la base de datos ... 35276 ficheros o directorios instalados actualmente.) Preparando para reemplazar tzdata 2014h-0wheezy1 (usando tzdata_2016d-2_all.deb) ... Desempaquetando el reemplazo de tzdata ... Configurando tzdata (2016d-2) ... Current default time zone: 'America/Caracas' Local time is now: Mon Apr 25 09:48:07 VET 2016. Universal Time is now: Mon Apr 25 14:18:07 UTC 2016. Run 'dpkg-reconfigure tzdata' if you wish to change it.
4. verificamos el paquete instalado:
root@server:~# zdump -v /etc/localtime
...... /etc/localtime Sun May 1 06:59:59 2016 UT = Sun May 1 02:29:59 2016 VET isdst=0 gmtoff=-16200 /etc/localtime Sun May 1 07:00:00 2016 UT = Sun May 1 03:00:00 2016 VET isdst=0 gmtoff=-14400 /etc/localtime 9223372036854689407 = NULL /etc/localtime 9223372036854775807 = NULL
Nota: al visualizar las últimas lineas, verificamos que ultimos cambios corresponden al 01/05/2016, donde a las 2:29:59, se incrementará 30 minutos a la hora legal.
5. Sincronizar la hora del hardware (computador) con la hora del sistema
root@server:/tmp# hwclock --systohc --utc
donde:
–systohc -> coloca el reloj físico la hora del sistema
–utc -> mantiene el reloj físico en UTC (*)
(*)Linux utiliza el estándar UTC sobre el estándar localtime
6. Verificamos el cambio:
root@server:/tmp# timedatectl status
Local time: lun 2016-04-25 11:54:56 VET Universal time: lun 2016-04-25 16:24:56 UTC RTC time: lun 2016-04-25 16:24:56 Time zone: America/Caracas (VET, -0430) Network time on: yes NTP synchronized: no RTC in local TZ: no
Pruebas:
Para efectuar una prueba, podemos cambiar la fecha y hora actual del sistema y llevarla a la fecha 01/05/2016, hora 2:29:50am, esperamos 10 segundo y verificamos el cambio
1. Cambiar fecha y hora al sistema:
root@server:/tmp# date --set "2016-05-01 02:29:50"
2. Verificar cambio a los 10 segundos:
root@server:/etc# timedatectl status
Local time: dom 2016-05-01 03:00:00 VET Universal time: dom 2016-05-01 07:00:00 UTC RTC time: lun 2016-04-25 16:29:45 Time zone: America/Caracas (VET, -0400) Network time on: yes NTP synchronized: no RTC in local TZ: no
Nota: se puede apreciar en el campo «Local Time» que hubo un adelanto de 30 minutos, pasó de 2:30:00 a 03:00:00, de igual manera el campo «Time Zone», cambió de America/Caracas (VET, -0430) a America/Caracas (VET, -0400)
Comandos Adicionales:
1. Verificar la zona horaria actual del computador:
root@server:/tmp# cat /etc/timezone
America/Caracas
2. Verificar la hora actual:
root@server:/tmp# date
lun abr 25 09:43:32 VET 2016
3. Reconfigurar la Zona Horaria del sistema:
root@server:/tmp# dpkg-reconfigure tzdata
NTP
Existen herramientas para mejorar la precisión del reloj del computador y mantener sincronicado la hora en el sistema:
Network Time Protocol (NTP) es un protocolo de Internet para sincronizar los relojes de los sistemas informáticos a través del enrutamiento de paquetes en redes con latencia variable. NTP utiliza UDP como su capa de transporte, usando el puerto 123. Está diseñado para resistir los efectos de la latencia variable.
Notas Importantes
1.- NTP permite «sincronizar la hora», «NO permite cambiar el huso horario de los equipos», la sincronización dependerá del huso horario configurado
2.- Algunas aplicaciones (como PHP) tienen los ajustes de la zona horaria por separado del sistema operativo, manteniendo su propia base de datos de zona horaria timezonedb, la cual está basada en la «Time Zone Database», mantenida por Internet Assigned Numbers Authority (IANA) Time Zones IANA, es importante revisar si la zona horaria de PHP depende del sistema operativo o se encuentra separada.
3.- En el caso de tener JAVA instalado, se hace necesario instalar el paquete tzdata-java-2016d, en los repositorios de debian se puede descargar en el siguiente enlace: Package tzdata-java
4.- En caso de tener servicios instalados, WEB (apache), BD (postgres), entre otros, es importantes reiniciarlos para que en caso de que la Zona Horaria dependa del Sistema Operativo, los cambios surtan efecto.
Enlaces:
gaceta-oficial-el-cambio-de-horario-en-venezuela-desde-el-primero-de-mayo
Cambio de Huso Horario en Venezuela
Time (Español)
Time Zones IANA
Que es la Zona Horaria
PHP y las zonas horarias
14 respuestas a “Cambio huso horario Venezuela 2016”
Excelente nota, pero para el caso de servidores debían con versiones 5,6 y 7 , es el mismo paquete.?
Gracias Jesús, puedes buscar el paquete que corresponde a Wheezy (debian 7) y jessie (debian 8) en el siguiente enlace: https://packages.debian.org/search?keywords=tzdata&searchon=names&suite=all§ion=all
No sería más fácil añadir el repositorio de jessie-updates y actualizar el sistema. https://wiki.debian.org/StableUpdates
Si, pero cuando escribí la entrada, aún los paquetes de jessie-update no estaban disponible, sólo sid. pero siempre hay opciones, compilar el fuente de IANA, modificar el tzdata, …. y es lo realmente interesante, tener muchas opciones a la hora de resolver un problema y no que las opciones, se conviertan en problemas.
Una acotación…
Para los que estén usando Java 8, actualizar tzdata-java no les servirá: a partir de OpenJDK8 la información de las zonas horarias pasa a estar localizada en el archivo tzdb.dat, ubicado en el directorio lib dentro de la ruta raiz del JRE (en el caso de openjdk-8-jre-headless instalado desde el repositorio de backports para Debian Jessie seria /usr/lib/jvm/java-8-openjdk-amd64/jre/lib para la version de 64 bits). Por razones técnicas, en Debian se optó por dejarlo así en vez de separar este archivo en un paquete aparte (!!!), por lo que solo hay dos formas de actualizarlo:
– Actualizar el JRE/JDK completo. En el caso de Debian Jessie no parece ser una opción viable dada la naturaleza del repositorio backports: las actualizaciones son menos frecuentes, y podrian pasar meses hasta que aparezca un OpenJDK con la actualización relevante ahi
– Usar la alternativa de Oracle: el Timezone Updater: http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html – por esa vía decidí irme
En el caso de usar Timezone Updater, basta con ejecutar este comando:
sudo java -jar tzupdater.jar -l http://www.iana.org/time-zones/repository/releases/tzdata2016d.tar.gz
(si, se necesitan privilegios de root, y debes cerrar TODAS las instancias de la JVM activas para poder realizar la actualización de zonas horarias)
PARA LOS Q USAMOS OPEN SUSE 64 BIT ► COMO HACEMOS EXPLIQUE POR FAVOR LO MAS RAPIDO POSIBLE
►PARA LOS Q USAN Linux: OpenSuse 64 Bit ► Como Hacemos Por Favor Responda Lo Mas Rapido Posible
para los que usan suse cambiaense a una distro que preste atencion a sus paquetes como debian que en seguridad es la mas al dia y la mas eficiente
Para GNU/Linux 64 pueden hacerlo manual.
Metodo 1: /etc/localtime
# ls -l /etc/localtime*
-rw-r–r– 1 root root 240 sep 19 2015 /etc/localtime
# cat /etc/localtime
VET4:30
# mv /etc/localtime /etc/localtime.old
# cd /tmp
# wget http://ftp.debian.org/debian/pool/main/t/tzdata/tzdata_2016d-2_all.deb
# ar -x tzdata_2016d-2_all.deb
# tar -xvJf data.tar.xz
# ls -ld usr/
# cat usr/share/zoneinfo/America/Caracas
VET4
# mv Caracas /usr/share/zoneinfo/America/Caracas
# ln -s /usr/share/zoneinfo/America/Caracas /etc/localtime
# date -u
mié may 11 00:29:02 UTC 2016
# date
mar may 10 20:29:04 VET 2016
Disculpe hay un error en esta linea
# mv Caracas /usr/share/zoneinfo/America/Caracas
es así;
# mv usr/share/zoneinfo/America/Caracas /usr/share/zoneinfo/America/Caracas
Utilizo este código para sincronizar la hora: «hwclock –systohc –utc»
Pero nada cambia, sigue usando el localtime en vez del UTC. No sé qué hacer…
Puedes ejecutar el comando #timedatectl status para ver el resultado
[…] Fuentes: juantrucupei […]
[…] Fuentes: juantrucupei […]