Como muchos ya se habrán informado, el cambio de Zona horaria en Venezuela ya se hizo efectivo y aquí les digo a qué empresa/grupo en mi experiencia le doy puntos por darle a sus usuarios los fixes necesarios a tiempo y sin complicaciones

IBM: +1
http://www.ibm.com/developerworks/java/jdk/dst/index.html

Microsoft: +1
http://www.nuevahoravenezolana.com/

Red Hat/Fedora: +1
https://bugzilla.redhat.com/show_bug.cgi?id=410101

Sun Microsystems: 0
http://java.sun.com/javase/timezones/

Algunos se preguntarán por qué a Sun no le doy puntos, y es sencillo, lamentablemente para obtener su fix para Java necesitas llamar al Centro de Soporte Técnico, cosa que hice de inmediato, para simplemente obtener la respuesta de que necesito tener un contrato de soporte y si quería tener contacto con un vendedor para tratar el tema.

Pero no se preocupen, la idea de esta entrada en este blog es la de dar soluciones y no solo quejarme :-P. La última versión disponible en el sitio de Sun de la herramienta de update es la versión 1.3.0 que no incluye el cambio de Venezuela del pasado 9 de diciembre, y como la licencia de la herramienta prohíbe explícitamente la ingeniería reversa, simplemente busque otro camino. Desde hace un poco más de un año Sun empezó el proceso de convertir Java en Software Libre, y la primera distribución en incluir parte de lo que será Java 7 es Fedora (llamada IcedTea), recurrí al código fuente de este localizado en los mirrors de Fedora

Tras examinar el proceso de build, se puede notar que al igual que en Linux/Unix se utiliza el comando zic para trasformar la base de datos Olson de Zonas horarias, en OpenJDK hay un programa Java en openjdk/j2se/make/tools/javazic que realiza la misma tarea pero generando el formato específico para los JVM de Sun. Utilizando este compilador y usándolo con el archivo southamerica localizado en la base de datos Olson más reciente, se generan una serie de archivos, del cual nos interesa es America/Caracas, el cual puede sustituir a $JAVA_HOME/jre/lib/zi/America/Caracas (Este cambio fue probado en JVM de Sun 1.6.x)

Ahora, por qué 0 puntos es vez de -1, porque gracias a OpenJDK fue fácil realizar este cambio, de alguna manera u otra Sun ayudó a que fuese posible, El poder del Software Libre en acción.

NOTA: antes de que pregunten :-P ¿por qué Java requiere tener la base de datos internamente y no usar la del OS?, sencillo, no todas los sistemas operativos incluyen APIs para obtener la zona horaria que incluya el histórico de los cambios, por ejemplo, El fix de Windows solo incluye una nueva zona horaria al sistema, pero no lleva un histórico de que Venezuela estaba a -4:30 de UTC antes del año 1965, Windows solo tiene información del offset con UTC actual, en cambio las APIs de Java permiten hacer transformaciones de Zona horaria para cualquier fecha y hora. Por esta razón aplicaciones como Ms Office deben ser actualizadas por separado.

De todos modos he añadido un Bug a Fedora a ver si es posible hacer que IcedTea pueda usar una base de datos externa o en lo posible separar los archivos que vienen dentro de IcedTea al RPM de tzdata de tal forma de que el cambio sea centralizado. https://bugzilla.redhat.com/show_bug.cgi?id=418101

El archivo “Caracas” lo pueden conseguir en:

http://www.marcanoonline.com/downloads/java/zi/Caracas


3 Respuestas a “Mi experiencia: Cambio de Zona Horaria en Venezuela”

  1. 1 Ettore

    para CENTOS 5: en 2 pasos:

    revisar /etc/sysconfig/clock:

    ZONE=”America/Caracas”
    UTC=true
    ARC=false

    #yum -y install ntp
    #yum -y update tzdata

    listo, el SO ya deberia mostrar la hora legal.

  2. 2 robmv

    @Ettore: Eso es correcto, lamentablemente el update de CentOS no estaba disponible el día sabado, o algunos mirrors estaban atrasados, pero no los culpo, CentOS depende de los update de Red Hat y Red Hat esperó hasta último momento para enviar el update, no sea que pasara otra vez lo de posponer el cambio

  3. 3 Railstafary

    para Ubuntu en 1 paso:

    sudo apt-get install tzdata

Añade un Comentario





RSS feeds

Suscríbete a nuestros RSS Feeds