Cambio de hora en Paraguay 2010
El Gobierno Paraguayo resolvió modificar la fecha de entrada en vigencia del horario de invierno en toda la república. Con el anterior decreto vigente desde el 2004 se tenia que la hora debía retrasarse en 60 minutos el segundo domingo de Marzo (14/Mar este año) y volver a adelantarse en 60 minutos el tercer domingo de Octubre (17/Oct este año).
Con el nuevo decreto esto cambia a retrasar la hora en 60 minutos el segundo domingo de Abril (11/Abr este año) y volver a adelantarla en 60 minutos el primer domingo de Octubre (3/Oct este año).
Referencias:
http://www.abc.com.py/abc/nota/78024-En-abril-se-atrasa-la-hora/
http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf
Bueno, esto que implica para los que trabajamos con sistemas unix?. En un equipo unix se mantiene la hora interna del sistema en UTC, y se ajusta la hora local según los usos horarios (o zona horaria). Para esto se utiliza la base de datos Olson, que registra las diferentes zonas horarias y las reglas para el cambio a horarios de verano (daylight saving transition o DST) según corresponda.
Esta base de datos puede bajarse en su ultima versión de ftp://elsie.nci.nih.gov/pub/tzdata*.tar.gz. Si no tenemos la suerte de que se refleje esta nueva legislación, debemos realizar los cambios a mano.
En nuestro caso, debemos limitar la ultima regla (que empieza en el 2004) al 2009 y agregar una nueva regla que este vigente desde el 2010 hasta “final de los tiempos”. Probablemente esta no sea la ultima regla a agregar, pero hasta que no haya una nueva, debería tener vigencia indefinida.
Asi quedaria sin los comentarios:
# Paraguay
Rule Para 1975 1988 - Oct 1 0:00 1:00 S
Rule Para 1975 1978 - Mar 1 0:00 0 -
Rule Para 1979 1991 - Apr 1 0:00 0 -
Rule Para 1989 only - Oct 22 0:00 1:00 S
Rule Para 1990 only - Oct 1 0:00 1:00 S
Rule Para 1991 only - Oct 6 0:00 1:00 S
Rule Para 1992 only - Mar 1 0:00 0 -
Rule Para 1992 only - Oct 5 0:00 1:00 S
Rule Para 1993 only - Mar 31 0:00 0 -
Rule Para 1993 1995 - Oct 1 0:00 1:00 S
Rule Para 1994 1995 - Feb lastSun 0:00 0 -
Rule Para 1996 only - Mar 1 0:00 0 -
Rule Para 1996 2001 - Oct Sun>=1 0:00 1:00 S
Rule Para 1997 only - Feb lastSun 0:00 0 -
Rule Para 1998 2001 - Mar Sun>=1 0:00 0 -
Rule Para 2002 2004 - Apr Sun>=1 0:00 0 -
Rule Para 2002 2003 - Sep Sun>=1 0:00 1:00 S
Rule Para 2004 2009 - Oct Sun>=15 0:00 1:00 S
Rule Para 2005 2009 - Mar Sun>=8 0:00 0 -
Rule Para 2010 max - Oct Sun>=1 0:00 1:00 S
Rule Para 2010 max - Apr Sun>=8 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Asuncion -3:50:40 - LMT 1890
-3:50:40 - AMT 1931 Oct 10 # Asuncion Mean Time
-4:00 - PYT 1972 Oct # Paraguay Time
-3:00 - PYT 1974 Apr
-4:00 Para PY%sT
Guardamos estas lineas en un archivo de texto plano para luego ser compilado: /root/america_asuncion.zone
Para los siguientes unix y unix-like, detallo el procedimiento de verificación de fecha de cambio de hora y de corrección.
Linux
- Estado inicial
# zdump -v America/Asuncion | grep 2010 |
- Crear archivo con el contenido listado mas arriba
# vi /root/america_asuncion.zone
- Compilar la zona horaria
# zic /root/america_asuncion.zone
- Verificar cambios, la salida debería diferir de la salida original
# zdump -v America/Asuncion | grep 2010 |
- Copiamos la zona a /etc/localtime. Antiguamente se utilizaba un link simbolico, pero a veces daba problemas de “archivo no encontrado” cuando /usr era un sistema de archivos separado.
# cp /usr/share/zoneinfo/America/Asuncion /etc/localtime
Solaris
- Estado inicial
# zdump -v America/Asuncion | grep 2010 |
- Crear america_asuncion.zone
# vi /root/america_asuncion.zone
- Compilar reglas
# zic /root/america_asuncion.zone
- Verificar cambios
# zdump -v America/Asuncion | grep 2010 |
- Asegurarse que el sistema utilice la zona correcta:
# grep TZ= /etc/TIMEZONE
TZ=America/Asuncion
Tru64
- Verificar estado inicial
# zdump -v America/Asuncion | grep 2010 |
- Crear el archivo con las reglas
# vi /root/america_asuncion.zone
- Compilar archivo de reglas
# zic /root/america_asuncion.zone
- Verificar cambios
# zdump -v America/Asuncion | grep 2010 |
HPUX
Bueno, no utiliza la base de datos Olson, y mantiene sus propias reglas para DST.
- Corroborar el estado actual, para este paso necesitamos el script dst.pl, puede ser bajado de los foros de HP
Ref:
http://forums11.itrc.hp.com/service/forums/questionanswer.do?threadId=1089676
http://forums11.itrc.hp.com/service/forums/questionanswer.do?admit=109447626+1267560461229+28353475&threadId=1007176
# ./dst.pl
- Editamos el archivo de sistema que contiene las reglas
# vi /usr/lib/tztab
- Agregamos al final del archivo:
<pre style="padding-left:30px;"># Horario normal es PYT con diferencia GMT-4, el horario de verano es PYST con diferencia GMT-3.
PYT4PYST
# Minuto - Hora - Dia - Mes - Año - Dia Semana.
0 23 8-14 4 2010-2038 6 PYT4
0 1 1-7 10 2010-2038 0 PYST3
- Definimos la zona horaria
# vi /etc/TIMEZONE
<pre style="padding-left:30px;">TZ=PYT4PYST
export TZ
- Corroboramos los cambios
# ./dst.pl
Observación.
Algunos procesos que corren perpetuamente puede requerir un reinicio luego de este cambio. Uno de estos seria el crond.
Y eso es todo, ahora nuestros sistemas contemplan la nueva regla vigente desde este año.
``` ftp://elsie.nci.nih.gov/pub/tz ``` ``` </div>