time programming astronomy linux

Normes de temps et calendriers : TAI, secondes intercalaires et jours juliens

Un guide complet sur la façon dont les ordinateurs mesurent le temps, couvrant le TAI, les secondes intercalaires, le système de jours juliens et la base de données des fuseaux horaires de l'IANA.

Normes de temps et calendriers : TAI, secondes intercalaires et jours juliens

Le temps est peut-être la variable la plus insaisissable et la plus complexe du génie logiciel. Bien qu'il semble simple en surface, la façon dont nous mesurons le temps est un équilibre délicat entre la physique atomique, la mécanique céleste et l'héritage historique.

Dans ce guide, nous allons décortiquer les couches de la mesure du temps, en passant de la précision atomique du TAI au suivi astronomique des jours juliens, et enfin aux complexités pratiques de la base de données des fuseaux horaires de l'IANA.


1. Le fondement : Le TAI (Temps Atomique International)

Au cœur de la chronométrie moderne se trouve le TAI (Temps Atomique International).

Qu'est-ce que le TAI ?

Le TAI est une échelle de temps atomique de haute précision basée sur la sortie combinée de plus de 400 horloges atomiques (principalement au césium) réparties dans le monde entier. Contrairement aux horloges que nous utilisons dans la vie quotidienne, le TAI ne s'accélère ni ne ralentit ; c'est un compte continu et de façon monotone croissant de secondes SI.

Pourquoi ne pas simplement utiliser le TAI ?

Bien que le TAI soit extrêmement stable, il n'est pas « ancré » à la rotation de la Terre. Si nous ne comptions que sur le TAI, le « midi » finirait par dériver au milieu de la nuit au fil des millénaires, car la rotation de la Terre ralentit progressivement et est légèrement irrégulière.


2. Le pont céleste : L'UTC et les secondes intercalaires

Pour garder nos horloges alignées avec le soleil, nous utilisons l'UTC (Temps Universel Coordonné).

Le décalage UTC-TAI

L'UTC est basé sur le TAI mais est maintenu à moins de 0,9 seconde de l'UT1 (une échelle de temps basée sur la rotation réelle de la Terre). Pour maintenir cet alignement, nous insérons (ou supprimons théoriquement) occasionnellement une seconde intercalaire.

À l'heure où nous écrivons ces lignes, UTC = TAI - 37 secondes. Cela signifie que les horloges atomiques sont en avance de 37 secondes sur nos horloges civiles.

La controverse des secondes intercalaires

Les secondes intercalaires sont un cauchemar pour les systèmes distribués. Si deux serveurs gèrent une seconde intercalaire différemment (par exemple, l'un « étale » la seconde tandis que l'autre « répète » la 60e seconde), cela peut entraîner des conditions de concurrence massives et une corruption des données. En raison de ces défis techniques, des efforts internationaux sont en cours pour supprimer progressivement les secondes intercalaires d'ici 2035.


3. Le temps de l'astronome : Le système des jours juliens

Pour les calculs historiques à long terme et les observations astronomiques, le calendrier grégorien standard est trop fragmenté avec ses longueurs de mois variables et ses années bissextes.

Numéro de jour julien (JD)

Le Numéro de jour julien est un compte continu de jours depuis le début de la « période julienne » le 1er janvier 4713 avant J.-C. Il a été conçu pour fournir une référence unique et non ambiguë pour n'importe quelle date de l'histoire.

  • JD 2 460 000,5 correspond approximativement aux temps modernes.
  • Le « ,5 » s'explique par le fait que les jours juliens commencent historiquement à midi (UT), et non à minuit, afin de permettre aux astronomes de terminer les observations d'une nuit sans que la date ne change.

Jour julien modifié (MJD)

Le Jour julien modifié a été introduit par le Smithsonian Astrophysical Observatory en 1957. Il est défini comme suit : $$MJD = JD - 2 400 000,5$$ Le MJD commence à minuit et utilise des chiffres plus petits, ce qui le rend plus pratique pour le stockage informatique moderne et les systèmes GPS.


4. Temps pratique : L'IANA et la base de données Olson

Pour les développeurs de logiciels, le plus grand défi n'est pas la physique atomique, c'est la politique humaine.

La base de données des fuseaux horaires de l'IANA

Également connue sous le nom de base de données Olson, la base de données de l'IANA est la collection faisant autorité de toutes les règles de fuseaux horaires historiques et actuelles. Elle ne se contente pas de stocker des décalages (comme +08:00) ; elle stocke les règles indiquant quand une région (comme America/New_York) passe de l'heure standard à l'heure d'été.

Pourquoi les noms sont importants

Vous devriez toujours stocker les identifiants de fuseaux horaires sous forme de chaînes de caractères (par exemple, Europe/Paris) plutôt que sous forme de décalages fixes. Si un gouvernement décide de modifier la date de début de l'heure d'été l'année prochaine, votre système s'adaptera automatiquement car il est lié au jeu de règles de la région, et non à un nombre statique.


5. Héritage informatique : Le temps POSIX (temps Unix)

Le temps Unix (ou temps POSIX) est défini comme le nombre de secondes écoulées depuis l'époque Unix (1er janvier 1970, 00:00:00 UTC).

Le « mensonge » de la seconde intercalaire

Le temps Unix a une façon unique de gérer les secondes intercalaires : il les ignore. Lorsqu'une seconde intercalaire se produit, l'horloge Unix s'arrête ou répète effectivement une seconde pour rester synchronisée avec l'UTC. Cela signifie que le temps Unix n'est pas un compte parfait des secondes écoulées (contrairement au TAI), c'est pourquoi les systèmes de trading à haute fréquence et les systèmes scientifiques utilisent souvent le TAI en interne à la place.


Conclusion

Le temps est une construction multidimensionnelle. Pour votre prochain projet, gardez à l'esprit ces quelques règles :

  1. Utilisez le TAI pour mesurer des durées précises ou des intervalles entre deux événements.
  2. Utilisez l'UTC (temps Unix) pour la plupart des journaux généraux et le stockage de données.
  3. Utilisez les identifiants IANA lorsque vous traitez de l'heure locale pour l'utilisateur.
  4. Utilisez les jours juliens si vous construisez un logiciel pour l'astronomie ou l'analyse historique profonde.

En comprenant les normes qui régissent nos horloges, vous pouvez construire des systèmes robustes, prévisibles et historiquement précis.