Français

Outils de développement · Convertisseur d'horodatage Unix

Un horodatage, deux horloges : pourquoi l'heure UTC et l'heure locale diffèrent pour une époque

· Comment ça marche

horodatages Validation unix-time fuseaux horaires

Un seul instant connecté à deux horloges aux aiguilles différentes
Illustration vectorielle originale de ToolAcre

Une valeur d'époque désigne un instant, mais l'heure de l'horloge murale que vous voyez dépend de l'endroit où vous vous trouvez. Cet article explique l'arithmétique offset, pourquoi la date elle-même peut différer et pourquoi un convertisseur affiche les deux lectures.

Le client indique 9 matin, le journal indique 16:00 — le même événement, deux horloges et un ticket d'assistance qui ne mène nulle part

Un dossier d'assistance peut stagner lorsqu'une personne signale « neuf heures du matin » alors que le journal des applications enregistre 16 :00. Aucune des deux étiquettes d'horloge n'identifie un événement tant que sa zone ou son décalage n'est pas connu. Si les deux références correspondent à la même époque, la recherche d'un délai de traitement de sept heures gaspille l'enquête sur une différence d'affichage.

Commencez par collecter l'horodatage brut et le contexte de zone de chaque observateur. ToolAcre affiche l'UTC et la lecture locale actuelle du navigateur à partir d'une conversion, de sorte que la comparaison est immédiate pour la personne détenant le journal. Un collègue ailleurs devrait comparer la valeur ISO partagée, et ne pas supposer que la ligne locale de la première personne s'applique à sa machine.

Une époque est un instant, pas une horloge murale : le nombre de secondes écoulées depuis 1970 qui n'a pas de zone propre

Une époque est une distance de 1970-01-01T00:00:00Z en secondes ou millisecondes. Il ne contient ni ville, ni drapeau d’heure d’été, ni notation d’horloge préférée. La valeur 1,700,000,000 identifie donc un instant ; des étiquettes telles que mardi soir ou mercredi matin sont des projections réalisées après avoir choisi la manière de lire cet instant.

C'est pourquoi le stockage d'une « époque locale » corrigée est une erreur de catégorie. L'ajout d'un décalage modifie le décompte et les points à un autre moment. Stockez ou transmettez l'instant d'origine, puis appliquez une règle de lecture au bord où une personne a besoin d'un calendrier. ToolAcre suit cette forme en préservant les secondes et millisecondes numériques à côté des sorties formatées.

Comment un décalage est appliqué : ajout ou soustraction d'heures et de minutes, de zones d'une demi-heure et de 45 minutes et de décalages qui changent au cours de l'année

Pour un décalage fixe, l'arithmétique est simple : UTC+09:00 affiche une horloge neuf heures en avance sur UTC, tandis que UTC−05:00 en affiche une cinq heures en retard. Les fractions d'heure sont traitées comme des minutes, donc un décalage de quarante-cinq minutes n'est pas représenté en toute sécurité par un arrondi à une heure entière. Le signe appartient à la lecture locale affichée.

Un décalage fixe ne représente toujours qu'une seule observation. ToolAcre demande à Intl le décalage applicable à l'instant choisi dans la zone courante du navigateur. Il ne faut pas supposer que la compensation actuelle s’applique tout au long de l’année. La copie d'un décalage dans la configuration de l'application peut donc sembler correcte lors des tests et échouer lorsque la règle applicable de l'environnement change.

Lorsque la date change également : instants proches de minuit qui tombent sur différents jours calendaires en UTC et localement

L'arithmétique de l'horloge peut traverser les limites d'un calendrier. Un instant à 00:20 UTC apparaît à la date précédente sous un décalage négatif et plus tard la même date sous un décalage positif. Un ticket qui n'enregistre que « le 14 » peut donc faire référence à différentes tranches d'un journal UTC, même lorsque les deux participants se souviennent avec précision de leur propre calendrier.

Utilisez la date, l'heure et le décalage complets lors de la gestion d'un événement entre équipes. La ligne ISO du convertisseur empêche la date d'être détachée de UTC, tandis que la ligne locale fournit un contexte familier. Si un incident dure minuit, classez les entrées par époque ou UTC plutôt que de trier les étiquettes humaines écrites dans plusieurs zones.

Exemple concret : 1700000000 en UTC, dans une zone UTC+9 et dans une zone UTC−5 — l'arithmétique écrite et les dates comparées

L'article sur l'unité publié existant établit que 1,700,000,000 secondes est `2023-11-14T22:13:20.000Z`. Sous une lecture fixe +09:00, ajoutez neuf heures pour obtenir 2023-11-15 07:13:20 ; sous −05:00 fixe, soustrayez cinq heures pour obtenir 2023-11-14 17:13:20. La date ne change que dans l'exemple oriental.

Ces deux lectures décalées sont des démonstrations arithmétiques, et non des affirmations sur les villes nommées à cette date. La ligne locale ToolAcre doit être autorisée à signaler tout décalage fourni par Intl pour la zone réelle du navigateur. Comparez-le avec la valeur UTC et notez le décalage affiché plutôt que d'imposer l'une ou l'autre des valeurs illustratives sur le résultat.

Exemple concret : une époque en UTC, puis deux lectures explicites à décalage fixe

L'affichage des deux lectures supprime la soustraction mentale d'une session de débogage. L'équipe du serveur peut citer UTC, tandis que la personne reproduisant un problème peut reconnaître l'horloge locale qu'elle a vue. Étant donné que les deux lignes dérivent d’une seule date, les secondes et millisecondes correspondantes prouvent qu’elles n’ont pas été modifiées indépendamment ou arrondies en événements distincts.

La paire est particulièrement utile dans les captures d'écran : incluez la note d'unité et la ligne ISO plutôt que de recadrer à la valeur locale familière. Une horloge recadrée peut être réinterprétée après un voyage ou un changement de réglage de zone. Une époque plus ISO reste stable et le rendu local explique l'expérience utilisateur sans remplacer cette référence stable.

Ce que cela ne couvre pas : les changements de décalage historiques et les décisions politiques de fuseau horaire, qui résident dans la base de données tz plutôt que dans l'arithmétique.

Un simple ajout ne peut pas décrire une zone régionale dont le décalage applicable varie. Le convertisseur délègue le formatage local à Intl, mais son référentiel n'expose pas la table de règles sous-jacente ni les décisions historiques. Cet article ne répertorie donc pas les changements passés, ne prédit pas la politique future et ne promet pas de résultats identiques à partir de moteurs transportant des données différentes.

Lorsqu'une application doit planifier « 09:00 à cet endroit », conservez la zone nommée et utilisez une conception de planification prenant en compte les zones. Lorsqu'il doit enregistrer « cette demande s'est produite maintenant », retenez un instant. Ce sont des exigences différentes en matière de données. Un `+02:00` fixe peut décrire une lecture à un instant donné sans identifier la règle régionale qui l'a produite.

L'arithmétique à décalage fixe ne peut pas reproduire les règles régionales changeantes

Considérez l'époque comme une épingle à travers la chronologie et les cadrans de l'horloge comme des étiquettes placées autour d'elle. UTC fournit une étiquette commune ; le formatage local en fournit un pratique. ToolAcre présente les deux sans modifier le code PIN, c'est pourquoi une différence d'heures est attendue plutôt qu'une preuve de temps perdu.

Pour un événement contesté, collez le décompte brut, indiquez explicitement l'unité et partagez la sortie ISO. Joignez ensuite les lectures locales uniquement sous forme d'annotations. Cet ordre transforme « mon horloge par rapport à la vôtre » en une cartographie vérifiable et empêche les changements de limites de date de se faire passer pour des événements survenus à des jours différents.