Récemment, j’ai reçu une notification sur mon téléphone annonçant que de nouvelles définitions de fuseaux horaires étaient disponibles et que je devais redémarrer mon téléphone. Je ne me souviens pas d’avoir vu ce type de notification par le passé, mais sur la base de certains de mes récents projets d’analyse de données, j’avais une bonne idée de ce dont il pouvait s’agir.
L’Internet Assigned Numbers Authority (IANA) maintient une base de données, la base de données tz, de code et de données qui représentent l’historique de l’heure locale pour de nombreux endroits dans le monde. En utilisant les définitions des fuseaux horaires contenues dans la base de données tz, il est possible de déterminer le décalage UTC pour un fuseau horaire particulier à une date donnée. Cela inclut les définitions du début et de la fin de l’heure d’été, ainsi que les changements complets de fuseau horaire pour un pays ou une région. Ces informations changent plus fréquemment qu’on ne le pense. Par exemple, une modification récente de la base de données a ajouté les Fidji qui commencent à observer l’heure d’été à partir du deuxième dimanche de novembre à partir de 2019 au lieu du premier dimanche. Les données contenues dans cette base sont complexes et dépassent le cadre de cet article.
Si vous avez écrit du code pour convertir l’heure d’un fuseau horaire à un autre, si vous utilisez une multitude d’apps qui doivent convertir entre les fuseaux horaires ou si vous utilisez des sites Web pour effectuer la conversion, alors vous avez presque certainement, d’une manière ou d’une autre, interagi avec la base de données tz. La base de données est généralement intégrée dans des systèmes logiciels tels que les systèmes d’exploitation (Windows, Android, iOS, etc.) et dans des environnements sous forme de bibliothèques (par exemple Java, Python et .Net, etc.).
La base de données tz est mise à jour périodiquement pour refléter les modifications apportées par les organes politiques aux frontières des fuseaux horaires, aux décalages UTC et aux règles relatives à l’heure d’été. Il est important que les programmeurs et les développeurs de logiciels gardent cela à l’esprit car les changements peuvent avoir un impact pour les utilisateurs finaux et que des mises à jour du code ou des bibliothèques peuvent être nécessaires pour refléter les changements, surtout s’ils n’ont pas été mis à jour depuis plusieurs années. Il est également important pour les utilisateurs finaux de maintenir les logiciels à jour pour s’assurer que les bibliothèques utilisées par les apps sur des appareils comme les ordinateurs et les téléphones contiennent les changements récents dans la base de données tz afin de convertir correctement l’heure entre les différents fuseaux horaires.
Alors, que contiennent les changements les plus récents ? Une mise à jour de la base de données tz a été publiée le 23 avril 2020 (2020a) pour inclure les mises à jour des informations suivantes :
- Le Maroc observe actuellement de façon permanente l’heure d’été (UTC+01) pendant toute l’année, sauf pendant le mois de Ramadan où il revient à son fuseau horaire UTC d’origine. Initialement, il était estimé que le Maroc reviendrait à UTC+1 le 24 mai 2020 (fin du ramadan), cependant il a été officiellement annoncé que le changement d’heure aurait effectivement lieu le 31 mai 2020.
- Le territoire canadien du Yukon a annoncé qu’il observerait de façon permanente l’heure d’été du Pacifique (UTC-07) toute l’année au lieu de revenir à l’heure normale du Pacifique (UTC-08) en novembre 2020.
- Ajout de l’heure d’été pour Shanghai en 1919.
Dans le grand schéma des choses, ces changements semblent souvent mineurs, mais dans certaines applications, l’utilisation d’heures incorrectement converties peut avoir de graves implications.