2 points par GN⁺ 2024-10-31 | 1 commentaires | Partager sur WhatsApp
  • Les fuseaux horaires sont complexes, mais comme les ordinateurs doivent les implémenter, leur étrangeté reste limitée à un cadre fini.
    • Asia/Kathmandu a un décalage inhabituel par rapport à l’UTC.
    • Africa/Casablanca s’adapte mal au modèle des fuseaux horaires, donc il est géré en dur.
    • America/Nuuk passe à l’heure d’été à -01:00.
    • Africa/Cairo et America/Santiago passent à l’heure d’été à 24:00 (et non à 00:00).
    • Australia/Lord_Howe a la règle d’heure d’été la plus étrange.

PGXIIREAM : le pape Grégoire XIII gouverne tout

  • La majeure partie du monde utilise un système horaire fondé sur le calendrier grégorien.
  • Le calendrier grégorien est très utile pour maintenir la position du soleil cohérente tout au long de l’année.
  • L’UTC est la formalisation officielle moderne du calendrier grégorien, et le monde entier règle son heure sur cette base.

Les secondes intercalaires n’ont pas d’importance

  • La rotation de la Terre ralentit, et on ajoute des secondes intercalaires pour compenser.
  • On peut les ignorer, car les langages de programmation ne représentent pas une 61e seconde.
  • Les fournisseurs cloud résolvent le problème en ralentissant l’horloge pendant les secondes intercalaires.

Fuseaux horaires étranges

Asia/Kathmandu a un décalage inhabituel

  • Le Népal a 5 heures et 45 minutes d’avance sur l’UTC.
  • Les ordinateurs le savent grâce à la base de données des fuseaux horaires de l’IANA.

Les chaînes comme PDT ou CET n’ont pas de sens

  • Les identifiants de fuseau horaire peuvent être ambigus, et de nombreux fuseaux partagent le même identifiant.

Comment représente-t-on les fuseaux horaires avec heure d’été ?

  • Les règles de transition vers l’heure d’été sont complexes, et les ordinateurs calculent l’heure locale à partir de celles-ci.

Africa/Casablanca et Asia/Gaza suivent la lune, alors que les fuseaux horaires suivent le soleil

  • Le Maroc et Gaza ajustent l’heure d’été en fonction du ramadan, ce qui est géré en dur.

America/Nuuk passe à l’heure d’été à -1:00

  • Le Groenland commence l’heure d’été au même moment que l’Europe, mais en heure locale cela se produit à -1:00.

America/Santiago et Africa/Cairo basculent à 24:00

  • Ces fuseaux passent à l’heure d’été à 24:00, ce qui signifie le passage au jour suivant.

Australia/Lord_Howe a la transition d’heure d’été la plus étrange

  • L’île Lord Howe applique une transition d’heure d’été de 30 minutes.

Résumé de GN⁺

  • Les fuseaux horaires sont complexes, mais comme les ordinateurs doivent les implémenter, leur étrangeté reste limitée à un cadre fini.
  • Australia/Lord_Howe est le fuseau horaire le plus singulier avec sa transition d’heure d’été de 30 minutes.
  • Cet article aide à comprendre la complexité des fuseaux horaires et peut intéresser les programmeurs.
  • Un projet aux fonctionnalités similaires est tzdb.

1 commentaires

 
GN⁺ 2024-10-31
Commentaires sur Hacker News
  • La base de données tz ne calcule pas les transitions de fuseau horaire avant le Big Bang. Les horodatages antérieurs au Big Bang sont physiquement suspects.

    • Par exemple, Glib applique encore les règles brésiliennes de 1913 pour calculer les horodatages de São Paulo.
    • Les secondes intercalaires avant le Big Bang ne sont pas non plus autorisées.
  • Le fuseau horaire Africa/Addis_Ababa n’est suivi par personne en Éthiopie.

    • Les habitants utilisent les heures avec un décalage de 6 heures.
    • Le cycle AM commence à l’aube et le cycle PM commence au crépuscule.
  • Il est faux de dire que les langages de programmation ne peuvent pas représenter des minutes de 61 secondes.

    • Raku prend en charge les secondes intercalaires.
    • DateTime.pm de Perl 5 prend aussi en charge les secondes intercalaires, ce qui augmente la complexité.
    • Les secondes intercalaires sont rarement utilisées et augmentent la complexité du code.
  • Le fuseau horaire Asia/Jerusalem est complexe en raison de questions religieuses et nationales.

    • Pour des raisons religieuses, l’heure d’été est décidée chaque année par négociation.
    • Il existe des exceptions pour éviter que l’heure d’été ne se termine à Rosh HaShanah.
  • Expérience d’écriture d’une fonction pour trouver l’heure locale à partir d’une adresse américaine.

    • Mapper statiquement les États et les fuseaux horaires est difficile à cause des cas limites.
    • Un CSV associant les codes ZIP et les offsets UTC a été acheté et utilisé.
    • Il existe des fuseaux horaires complexes à cause des territoires d’outre-mer américains et des bases militaires.
  • Pour la Palestine, le gouvernement annonce chaque année le début et la fin de l’heure d’été sans date fixe.

    • Des annonces avec moins d’une semaine de préavis peuvent provoquer divers problèmes.
  • Lecture intéressante sur la flexibilité des logiciels de fuseaux horaires.

    • Les politiques d’heure d’été ne se limitent pas forcément à des ajustements de 60 minutes.
    • Un pays peut avoir un offset qui change continuellement au cours de l’année.
  • Quand un gouvernement supprime l’heure d’été puis déplace le fuseau horaire l’année suivante, cela crée de la confusion.

    • Lors du développement d’apps Android, des problèmes apparaissent à cause de la base de données des fuseaux horaires intégrée à l’image système.
  • La base de données tz est un diff de diff par rapport à l’UTC.

    • Des mises à jour sont effectuées et le changelog est stocké dans git.
    • On peut l’exprimer comme diff^4.
  • Un décalage de 30 minutes pour l’heure d’été n’est pas le fuseau horaire le plus étrange.

    • Antarctica/Troll, le Maroc et Gaza ont des règles que les systèmes ne peuvent pas représenter.
    • Les secondes intercalaires ne sont pas utiles aux programmeurs et sont généralement ignorées.