martes, 4 de diciembre de 2007

Nuevo Huso Horario de Venezuela

Como hacer el cambio automático del nuevo Huso Horario en Venezuela

A las 00:00 del día 9 de Diciembre, se debe retrasar media hora en los sistemas para adecuar la hora al nuevo Huso Horario que estableció el Gobierno Nacional de Venezuela.

De manera Informativa y Didáctica les indico el procedimiento paso a paso.

Recuerden tener en /etc/apt/sources.list el enlace para bajarse las fuentes "deb-src" .... por ejemplo:

deb-src http://debian.unesr.edu.ve/debian testing main contrib non-free

hacer como root lo siguiente:

# cd /root
# apt-get source tzdata
# cd tzdata-2007i
# tar xvfz tzdata2007i.tar.gz
# cp southamerica ..
# cd ..
# rm -rf tzdata*
# vi southamerica ó # nano southamerica
(Justo al final del archivo, usando tabuladores)
Zone America/Caracas -4:27:44 - LMT 1890
-4:47:40 - CMT 1912 Feb 12
-4:30 - VET 1965
-4:00 - VET 2007 Dec 9 03:00
-4:30 - VET

Generamos en un directorio de prueba antes de modificar el sistema y hacemos pruebas para estar seguros que los resultados son los correctos:

# mkdir tztest
# zic -d tztest southamerica
# TZ=/root/tztest/America/Caracas date --date="2007-12-09 04:00:00 UTC"
Sun Dec 9 00:00:00 VET 2007
# TZ=/root/tztest/America/Caracas date --date="2007-12-09 06:59:00 UTC"
Sun Dec 9 02:59:00 VET 2007
Sigue habiendo 4 Horas de Diferencia...
# TZ=/root/tztest/America/Caracas date --date="2007-12-09 07:00:00 UTC"
Sun Dec 9 02:30:00 VET 2007
Ahora a las 3 am VET hay 4:30 horas de diferencia.


Y vemos que el retroceso en el tiempo ha sido logrado, como lo establece el Gobierno Nacional desde las 03:00 am.

# TZ=/root/tztest/America/Caracas date --date="2007-12-09 07:00:00 UTC"
Sun Dec 9 02:30:00 VET 2007

02:30 + 04:30 = 07:00

Y así podemos confirmar que en la fecha y hora indicada aumentará la diferencia entre nuestro tiempo y el tiempo de referencia mundial. Una vez probado, podemos instalar el archivo de zona horaria en el lugar adecuado (/usr/share/zoneinfo) para que el sistema operativo sepa atrasarse en el tiempo cuando llegue el momento.

# cp /root/southamerica /usr/share/zoneinfo/

# zic southamerica

y ejecutamos tzselect para que el archivo /etc/localtime sea copiado a partir del America/Caracas que se generó. El archivo /usr/share/zoneinfo/America/Caracas puede copiarse sin problemas a todas las demás máquinas Debian de una red.

Aquí también puede verificarse el instante y diferencial de tiempo

# zdump -v America/Caracas | grep 2007
America/Caracas Sun Dec 9 06:59:59 2007 UTC = Sun Dec 9 02:59:59 2007 VET isdst=0 gmtoff=-14400
America/Caracas Sun Dec 9 07:00:00 2007 UTC = Sun Dec 9 02:30:00 2007 VET isdst=0 gmtoff=-16200

Para realizar el cambio:

# dpkg-reconfigure tzdata

ó

# tzselect


Tener cuidado con la Base de Datos Postgres, a partir de la version 8.0, tiene un sistema de husos horarios propio, separado de aquel del sistema operativo.
Deberia bastar con copiar el nuevo archivo "southamerica" a src/timezone/data/ y luego hacer un "make install".


Saludos.


Gracias a Ernesto Hernandez Novich, y Alvaro Herrera.

No hay comentarios: