Problema: Argentina ha sido notablemente volátil en su política respecto de los husos horarios y la base de datos de husos suele salir a último momento (a veces after the fact) y, para colmo, la distribución de estos datos en los distintos unix tarda bastante más.

Bajar la última versión pública disponible de la base de datos, compilar el archivo de Sudamérica y configurar para una ciudad/región determinada

La siguiente receta fue probada en ubuntu, pero debería funcionar en cualquier Unix que tenga el comando zic (que en debian/ubuntu está en el paquete tzdata):

# definimos cuál queremos que sea el huso horario default del sistema
# CAMBIAR si no se está en la Ciudad o Provincia de Buenos Aires
MITZ=America/Argentina/Buenos_Aires

# averiguamos la version actual del archivo
VERSION=`wget -q -O - ftp://elsie.nci.nih.gov/pub/ | sed -n -e 's/.*tzdata\(.*\)\.tar\.gz.*/\1/p'`

# yo pongo mis cosas en ${HOME}/soft, cada uno vaya a donde quiera
cd ${HOME}/soft

# creo un directorio para nuestros tzdata (si no existe ya)
mkdir -p tzdata
cd tzdata

# me bajo el archivo
wget ftp://elsie.nci.nih.gov/pub/tzdata${VERSION}.tar.gz

# creo un subdirectorio para ESTA versión de tzdata (el .tar.gz no tiene el directorio adentro)
mkdir -p tzdata${VERSION}
cd tzdata${VERSION}
tar xzvf ../tzdata${VERSION}.tar.gz

# me fijo la hora local y la hora utc
export TZ=${MITZ}
date ; date -u
# si el huso horario está mal respecto de este momento, aca deberia dar la hora

sudo zic -l ${MITZ} southamerica backward

# me fijo nuevamente la hora local y la hora utc
date ; date -u
# acá debería dar bien la hora


# para verificar los nuevos cambios:
zdump -v /etc/localtime | egrep "2008|2009"

Esto nació en un mensaje que mandé el 5 de octubre de 2008 a la lista ubuntu-ar que después levantó y amplió el sitio Técnicos Linux (y algunos otros sitios más)...

Lista de ciudades que hay que configurar para cada Provincia de Argentina (válida a partir de tzdata2008i)

Provincia

HASC1

ISO-3166-2

Ciudad que la representa en TZ2

Buenos Aires

AR.BA

B

America/Argentina/Buenos_Aires

Catamarca

AR.CT

K

America/Argentina/Catamarca

Chaco

AR.CC

H

America/Argentina/Cordoba

Chubut

AR.CH

U

America/Argentina/ComodRivadavia

Ciudad Autónoma de Buenos Aires

AR.DF

C

America/Argentina/Buenos_Aires

Córdoba

AR.CB

X

America/Argentina/Cordoba

Corrientes

AR.CN

W

America/Argentina/Cordoba

Entre Ríos

AR.ER

E

America/Argentina/Cordoba

Formosa

AR.FM

P

America/Argentina/Cordoba

Jujuy

AR.JY

Y

America/Argentina/Jujuy

La Pampa

AR.LP

L

America/Argentina/Cordoba

La Rioja

AR.LR

F

America/Argentina/La_Rioja

Mendoza

AR.MZ

M

America/Argentina/Mendoza

Misiones

AR.MN

N

America/Argentina/Cordoba

Neuquén

AR.NQ

Q

America/Argentina/Salta

Río Negro

AR.RN

R

America/Argentina/Cordoba

Salta

AR.SA

A

America/Argentina/Salta

San Juan

AR.SJ

J

America/Argentina/San_Juan

San Luis

AR.SL

D

America/Argentina/San_Luis

Santa Cruz

AR.SC

Z

America/Argentina/Rio_Gallegos

Santa Fe

AR.SF

S

America/Argentina/Cordoba

Santiago del Estero

AR.SE

G

America/Argentina/Cordoba

Tierra del Fuego

AR.TF

V

America/Argentina/Ushuaia

Tucumán

AR.TM

T

America/Argentina/Tucuman

Bajar el borrador de husos horarios de Argentina del Baby, compilarlo y configurar para una ciudad/región determinada

/!\ OJO: Esto no tiene ninguna garantía (en realidad, nada lo tiene)... este es un archivo con los husos horarios de Argentina según entiendo yo (MarianoAbsatz) de información periodística publicada a la fecha /!\

# definimos cuál queremos que sea el huso horario default del sistema
# CAMBIAR si no se está en la Ciudad o Provincia de Buenos Aires
MITZ=America/Argentina/Buenos_Aires

FILENAME=argentina-baby-2009-10-17.zoneinfo

# yo pongo mis cosas en ${HOME}/soft, cada uno vaya a donde quiera
cd ${HOME}/soft

# creo un directorio para nuestros tzdata (si no existe ya)
mkdir -p tzdata
cd tzdata


# creo un subdirectorio para cosas no oficiales
mkdir -p NO_OFICIAL
cd NO_OFICIAL

# me bajo el archivo con los datos de Argentina
wget -O ${FILENAME} 'http://wiki.clueless.com.ar/ActualizarTimezonesConTzdata?action=AttachFile&do=get&target='${FILENAME}

# me fijo la hora local y la hora utc
export TZ=${MITZ}
date ; date -u
# si el huso horario está mal respecto de este momento, aca deberia dar la hora

sudo zic -l ${MITZ} ${FILENAME}

# me fijo nuevamente la hora local y la hora utc
date ; date -u
# acá debería dar bien la hora


# para verificar los nuevos cambios:
zdump -v /etc/localtime | egrep "2008|2009"

Cambios de marzo de 2009 en la Provincia de San Luis

El gobierno puntano decidió con dos días de anticipación cambiar su huso horario a 4 horas al Oeste de UTC entre el tercer domingo de marzo y el segundo sábado de octubre de 2009.

Obviamente esto no va a ser publicado a tiempo en la base de datos de husos horarios tzdata.

Yo actualicé el borrador con husos horarios de Argentina con los datos para 2009 de San Luis, con lo cual, simplemente hay que seguir las instrucciones para compilar e instalar los datos actualizados de Argentina.

El 23/03/2009 se publicó tzdata2009d con los cambios incorporados, a partir de entonces se pueden usar las instrucciones para instalar el paquete tzdata oficial.

(ausencia de) Cambios en octubre de 2009

Como siempre, a último momento (viernes 16 de octubre por la mañana, luego de la publicación del Boletín Oficial), el Poder Ejecutivo Nacional decidió que en 2009/2010 no se adelante la hora.

Los cambios entrarán posiblemente en tzdata2009p a publicarse alrededor del 30 de octubre.

Los usuarios de Ubuntu GNU/Linux están de parabienes ya que el mantainer del paquete tzdata publicó las actualizaciones extraoficiales el sábado 17, con lo cual un sudo apt-get update ; sudo apt-get upgrade debería ser suficiente.

En Debian es posible que funcione si están usando sid, lenny-volatile o etch-volatile ya que el patch fue hecho, originalmente por Margarita Manterola que es una de las maintainers del paquete tzdata en Debian.

El resto de los usuarios de sistemas unix-like que utilizan la base de Olson, pueden usar mis instrucciones recién actualizadas con el parche de Margarita.

El 26/10/2009 se publicó tzdata2009p con los cambios incorporados, a partir de entonces se pueden usar las instrucciones para instalar el paquete tzdata oficial.

Windows XP

Para la pobre gente que debe lidiar con Windows, Microsoft publicó unas instrucciones horrendas que, para usuarios "domiciliarios", simplemente les dice que cambien el huso horario a mano...

De las instrucciones para administradores y usuarios corporativos se infiere una solución razonable para los usuarios de Windows XP que aparentemente no sirven en Vista... de todos modos, si estás usando Vista, supongo que te lo merecés... te recomiendo hacer un upgrade a Ubuntu GNU/Linux.

Si tenés Windows XP (y no querés hacer el upgrade a GNU/Linux), hacé lo siguiente (NO DOY GARANTÍAS PARA NADA... RECOMIENDO HACER UN BACKUP DEL REGISTRY ANTES DE HACER ESTO, SI SE ROMPE, LO SIENTO -pero a mí me anduvo OK en una docena de máquinas):

  • Logueate con permisos de administrador
  • Bajáte el archivo ms-tz-argentina-2008-10-16.reg

  • Hacéle doble-click al archivo que bajaste (te va a preguntar si querés modificar el registro de windows, decíle que sí)
  • Ahora hacé doble-click en el relojito del systray (la miniventanita abajo a la derecha de la pantalla)

  • Seleccioná el tab "Zona horaria"

  • Ahí elegí "(GMT -03:00) Buenos Aires"

  • Ahora tenés que saber si estás en una Provincia que adelantó la hora el 19/10.
    • Para las provincias que adelantaron la hora (Buenos Aires, Ciudad de Buenos Aires, Chaco, Córdoba, Corrientes, Entre Ríos, Formosa, Misiones, Santa Fe, Santiago del Estero, Tucumán), asegurarse de que el checkbox que dice "Cambiar la hora automáticamente según el horario de verano" esté seleccionado.

    • Para las provincias que no adelantaron la hora (Catamarca, Chubut, Jujuy, La Pampa, La Rioja, Mendoza, Neuqén, Río Negro, Salta, San Juan, San Luis, Santa Cruz, Tierra del Fuego), asegurarse de que el checkbox que dice "Cambiar la hora automáticamente según el horario de verano" esté apagado.

Octubre de 2009

Las instrucciones publicadas por Microsoft en octubre de 2009 tienen un nuevo patch (ms-tz-argentina-2009-10-16.reg) que debería aplicarse siguiendo las mismas instrucciones que en 2008.

Sin embargo, creo que es más simple hacer lo siguiente:

  • Hacé doble-click en el relojito del systray (la miniventanita abajo a la derecha de la pantalla)

  • Seleccioná el tab "Zona horaria"

  • Ahí elegí "(GMT -03:00) Buenos Aires"

  • Asegurarse de que el checkbox que dice "Cambiar la hora automáticamente según el horario de verano" esté apagado.


Notas

  1. ver http://statoids.com/uar.html (1)

  2. la ciudad no necesariamente está en la misma provincia o en la misma región, simplemente es la ciudad con más habitantes que tiene las mismas reglas de cambio de hora (2)

ActualizarTimezonesConTzdata (última edición 2009-10-26 11:25:34 efectuada por MarianoAbsatz)

Edit and actions menu

  • Página inmutable
  • Información
  • Adjuntos