Outil d'horodatage

Outil de conversion d'horodatage en ligne, prenant en charge la conversion entre l'horodatage Unix et la date-heure avec prise en charge de plusieurs fuseaux horaires

Horodatage actuel

Horodatage vers date

Le résultat de la conversion s'affichera ici

Date vers horodatage

Le résultat de la conversion s'affichera ici

Connaissances sur les horodatages

Les fondements du calcul du temps


I. Horodatage Unix : le « langage temps » universel

Définition :
Un horodatage Unix (Unix Timestamp) représente le nombre de secondes écoulées depuis le 1er janvier 1970, 00:00:00 UTC (sans les secondes intercalaires). Il sert de norme de représentation du temps indépendante de la plateforme et du fuseau horaire dans les systèmes informatiques.

Sources de définition faisant autorité :

  • Selon la norme POSIX (IEEE Std 1003.1-2017)[1], l'horodatage Unix est défini comme « secondes depuis l'Époque ».
  • La page du manuel Linux time.h[2] précise que son type de données est time_t (généralement un entier signé de 32 ou 64 bits).

Caractéristiques clés :

  1. Indépendance du fuseau horaire : les horodatages Unix sont identiques dans le monde entier pour un même instant.
    Exemple : à la fois 2023-10-01 08:00:00 (UTC+8) et 2023-10-01 00:00:00 UTC ont l'horodatage 1696118400.
  2. Omission des secondes intercalaires : exclut les ajustements de secondes intercalaires, ce qui entraîne environ 27 secondes d'écart avec le Temps atomique international (TAI) (en 2023)[3].
  3. Limite des 32 bits : les horodatages 32 bits déborderont à zéro le 19 janvier 2038 (le « problème de l'an 2038 »)[4].

II. GMT contre UTC : de l'observation astronomique aux horloges atomiques

Bien qu'on les utilise souvent indifféremment, GMT (Greenwich Mean Time) et UTC (Temps universel coordonné) ont des différences fondamentales :

Aspect GMT (Greenwich Mean Time) UTC (Temps universel coordonné)
Définition Basé sur la rotation de la Terre (observation astronomique) Basé sur les horloges atomiques (oscillation de l'atome de césium), maintient un écart < 0,9 s avec le GMT
Ajustement Aucune calibration périodique Synchronisé avec la rotation de la Terre via des secondes intercalaires[5]
Autorité À l'origine défini par l'observatoire de Greenwich, désormais utilisé comme identifiant de fuseau (UTC+0) Maintenu par l'UIT[6] et le BIPM[7]

Faits clés :

  • Déclin du GMT : l'UTC a remplacé le GMT comme norme internationale de temps en 1972[8], bien que « GMT » reste largement utilisé pour désigner le fuseau UTC+0.
  • Règles d'abréviation des fuseaux : selon la base de données des fuseaux horaires IANA[9], Etc/UTC et Etc/GMT représentent tous deux un décalage nul, mais ce dernier utilise des signes inverses (par ex., GMT+1 signifie en réalité UTC-1).

III. Conversion de fuseau horaire : de l'horodatage à l'heure locale

Formule horodatage → heure locale :
Heure locale = Horodatage Unix + Décalage du fuseau + Compensation des secondes intercalaires

Outils et normes faisant autorité :

  1. Base de données des fuseaux horaires IANA (anciennement base Olson)[9] :
    • Contient les règles des fuseaux mondiaux (par ex., America/New_York représente UTC-5/UTC-4)
    • Intégration par défaut dans Linux, macOS, les systèmes Java
  2. Norme ISO 8601[10] :
    • Spécifie le format YYYY-MM-DDTHH:mm:ss±HH:mm (par ex., 2023-10-01T08:00:00-04:00)
  3. RFC 3339[11] :
    • Définit le format d'heure Internet (compatible ISO 8601), impose un décalage de fuseau explicite

Exemple de code (Python) :

import datetime

timestamp = 1696118400
# Convert to UTC
utc_time = datetime.datetime.utcfromtimestamp(timestamp)  # 2023-10-01 00:00:00
# Convert to Eastern Time (UTC-4)
local_time = datetime.datetime.fromtimestamp(timestamp, datetime.timezone(datetime.timedelta(hours=-4)))  # 2023-10-01 04:00:00-04:00

IV. Secondes intercalaires : la « gestion des exceptions » de l'horodatage

Mécanisme des secondes intercalaires :

  • Le Service international de la rotation de la Terre (IERS)[5] détermine l'insertion d'une seconde intercalaire selon les variations de la rotation terrestre (généralement les 31 juin ou décembre)
  • En 2023, l'écart cumulé des secondes intercalaires entre UTC et TAI est de 37 secondes[3]
Compatibilité des systèmes : Système/Langage Gestion des secondes intercalaires Documentation officielle
Linux Le noyau prend en charge l'insertion de secondes intercalaires, nécessite une configuration manuelle Linux Kernel Leap Second Handling
Java L'API java.time ignore les secondes intercalaires Oracle Java Docs
Google Public NTP Utilise la stratégie de « lissage » (leap smearing) lors de l'insertion d'une seconde intercalaire Google Leap Smearing

V. Références faisant autorité


VI. Résumé

  • L'horodatage Unix est fondamental pour la programmation multi-fuseaux ; soyez conscient du problème de débordement de 2038.
  • L'UTC est la norme internationale moderne, tandis que le GMT n'est utilisé que comme identifiant de fuseau (UTC+0).
  • Les conversions de fuseau s'appuient sur la base de données IANA, et la gestion des secondes intercalaires doit référencer les bulletins de l'IERS.

Comprendre ces concepts garantit un contrôle précis de la logique temporelle dans les systèmes critiques comme les transactions financières et la synchronisation des journaux.

Références

[1] Norme POSIX du temps : IEEE Std 1003.1-2017
[2] Page du manuel Linux time.h : lancez man 3 time dans le terminal
[3] Bulletin des secondes intercalaires du BIPM : TAI-UTC History
[5] Service international de la rotation de la Terre (IERS) : Leap Second Announcements
[6] Union internationale des télécommunications (UIT) : UTC Definition
[9] Base de données des fuseaux horaires IANA : Official Repository
[11] Format d'heure RFC 3339 : RFC 3339 Specification