Foto de Luis Cortes en UnsplashRecientemente recibí una notificación en mi teléfono anunciando que había nuevas definiciones de zona horaria y que debía reiniciar mi teléfono. No recuerdo haber visto este tipo de notificación en el pasado, pero basándome en algunos de mis recientes proyectos de análisis de datos tuve una buena idea de lo que podría tratarse.
La Autoridad de Números Asignados de Internet (IANA) mantiene una base de datos, la base de datos tz, de código y datos que representan la historia de la hora local para muchos lugares del mundo. Utilizando las definiciones de zonas horarias contenidas en la base de datos tz es posible determinar el desfase UTC para una zona horaria concreta en una fecha determinada. Esto incluye definiciones para el inicio y el final del horario de verano y también los cambios completos del huso horario para un país o región. Esta información cambia con más frecuencia de lo que se podría suponer. Por ejemplo, un cambio reciente en la base de datos ha añadido que Fiyi comenzará a observar el horario de verano a partir del segundo domingo de noviembre de 2019 en lugar del primer domingo. Los datos contenidos en esta base de datos son complejos y están fuera del alcance de este artículo.
Si has escrito código para convertir la hora de una zona horaria a otra, utilizas cualquier multitud de aplicaciones que necesitan convertir entre zonas horarias, o utilizas sitios web para hacer la conversión, entonces es casi seguro que de alguna manera o forma has interactuado con la base de datos tz. La base de datos suele estar integrada en sistemas de software como los sistemas operativos (Windows, Android, iOS, etc.) y en entornos como bibliotecas (por ejemplo, Java, Python y .Net, etc.).
La base de datos tz se actualiza periódicamente para reflejar los cambios realizados por los organismos políticos en los límites de los husos horarios, las compensaciones UTC y las reglas de ahorro de luz. Es importante que los programadores y desarrolladores de software lo tengan en cuenta, ya que los cambios pueden repercutir en los usuarios finales y puede ser necesario actualizar el código o las bibliotecas para reflejar los cambios, especialmente si no se han actualizado en varios años. También es importante que los usuarios finales mantengan el software actualizado para asegurarse de que las bibliotecas utilizadas por las aplicaciones en dispositivos como ordenadores y teléfonos contengan los cambios recientes en la base de datos tz con el fin de convertir correctamente la hora entre las diferentes zonas.
Entonces, ¿qué contienen los cambios más recientes? El 23 de abril de 2020 (2020a) se publicó una actualización de la base de datos tz para incluir las actualizaciones de la siguiente información:
- Marruecos actualmente observa permanentemente el horario de verano (UTC+01) durante todo el año, excepto durante el mes de Ramadán, en el que vuelve a su zona horaria UTC original. Inicialmente se estimó que Marruecos volvería a la UTC+1 el 24 de mayo de 2020 (fin del Ramadán), sin embargo, se anunció oficialmente que el cambio de hora tendría lugar realmente el 31 de mayo de 2020.
- El territorio canadiense de Yukón anunció que observará permanentemente el horario de verano del Pacífico (UTC-07) durante todo el año en lugar de volver a la hora estándar del Pacífico (UTC-08) en noviembre de 2020.
- Adición del horario de verano para Shanghái en 1919.
En el gran esquema de las cosas estos cambios muchos parecen menores, pero en algunas aplicaciones el uso de horas convertidas incorrectamente puede tener graves implicaciones.