Outils de développement · Convertisseur d'horodatage Unix
Ce que signifie le Z : UTC, décalages et indicateurs dans les horodatages ISO 8601
· Comment ça marche
horodatages Validation iso-8601 fuseaux horaires
Les convertisseurs et les API impriment les instants sous forme de chaînes ISO 8601, et le Z ou le décalage final est la partie que les gens ignorent. Cet article explique le format pièce par pièce afin que vous puissiez lire correctement l'UTC et la sortie locale.
Deux chaînes, un instant — 10:00:00Z et 12:00:00+02:00 côte à côte, et le lecteur qui pense qu'ils sont à deux heures d'intervalle
`2025-02-03T10:00:00Z` et `2025-02-03T12:00:00+02:00` nomment un instant. La deuxième chaîne affiche une horloge murale avec deux heures d'avance et fournit le décalage nécessaire pour soustraire ces heures. La lecture uniquement du champ horaire crée un écart fictif entre des événements simultanés.
ToolAcre transmet les deux chaînes à Date et renvoie les secondes d'époque, les millisecondes d'époque et une chaîne ISO UTC canonique. Des résultats numériques égaux constituent la comparaison décisive. Un cadran d'horloge modifié n'implique pas un changement de temps écoulé lorsqu'un indicateur à la fin explique la différence.
La procédure de comparaison sûre consiste à normaliser d'abord chaque chaîne en millisecondes d'époque. Si ces nombres entiers correspondent, la différence d'horloge apparente est une représentation plutôt que le temps écoulé.
L'anatomie d'une date-heure ISO 8601 - date, séparateur T, heure, fractions de seconde et indicateur de zone
La valeur ISO générée par l'outil comporte une date calendaire, `T`, des champs heure-minute-seconde, une fraction de milliseconde à trois chiffres et un `Z` final. Cette forme exacte provient de `toISOString()`. La gestion des entrées est plus large car Date analyse la chaîne fournie, mais le message d'erreur recommande une valeur explicite telle que `2024-03-01T09:30:00Z`.
Les séparateurs rendent les pièces lisibles ; le désignateur du terminal rend l'instant déterminé. Les fractions affinent la position en une seconde sans changer la zone. Lorsque vous comparez la sortie de l'API, conservez le désignateur final attaché. Tronquer une capture d'écran avant de supprimer les informations nécessaires pour mapper l'horloge sur UTC.
Z pour Zulu — pourquoi Z signifie UTC, son origine dans les fuseaux horaires militaires et aéronautiques, et pourquoi ce n'est pas la même chose qu'aucun indicateur
Dans cette implémentation, `Z` est détecté comme une zone explicite et `toISOString()` l'utilise pour UTC. Le compte d’origine militaire du classeur n’est pas documenté dans le référentiel, donc cet article ne le répète pas en tant qu’historique source. Le fait opérationnel est plus restreint et testable : un Z final empêche l’hypothèse de l’heure locale.
Aucun désignateur n'est pas une autre orthographe de Z. ToolAcre définit `assumedLocal` pour une date-heure dépourvue de Z ou d'un décalage numérique, puis indique à l'utilisateur quelle zone du navigateur a fourni l'interprétation. Le remplacement d'un suffixe manquant par Z modifie l'instant prévu chaque fois que l'horloge d'origine était censée être locale.
Dans ce convertisseur, Z marque la forme UTC ; son historique de dénomination se trouve en dehors des preuves du référentiel
Un suffixe tel que `+02:00` enregistre la différence entre l'horloge écrite et UTC à cet instant. Il n'identifie pas de ville. De nombreuses régions peuvent partager un décalage et une région peut utiliser un autre décalage à une autre date. La chaîne préserve la lecture, et non les règles politiques qui l'ont produite.
Cette limitation est importante dans les plannings récurrents. Une API peut rapporter fidèlement un instant passé avec `+02:00`, mais le suffixe à lui seul ne peut pas calculer la réunion 09:00 de l'hiver prochain. La conversion d'époque n'a besoin que du décalage fourni ; la planification future au mur nécessite une zone nommée et une logique sensible aux règles en dehors de ce panneau.
Exemple concret : une époque, deux lectures – la valeur UTC et la valeur locale affichées par un convertisseur, et confirmant qu'elles nomment le même instant
Utilisez l'époque 1,738,577,600 secondes pour la vérification de cet article. Le convertisseur restitue `2025-02-03T10:00:00.000Z`. Une chaîne source de `2025-02-03T12:00:00+02:00` est reconvertie au même décompte car sa lecture murale deux heures plus tard est équilibrée par le décalage positif de deux heures.
La ligne locale du navigateur peut afficher une troisième heure. Cela ne crée pas un troisième événement ; il s'agit d'une autre passe de formatage sur 1,738,577,600,000 millisecondes. Vérifiez l'identité avec les secondes ou l'ISO, puis utilisez chaque horloge étiquetée uniquement pour le public dont elle représente la zone.
Cette égalité peut également devenir un élément de régression : analyser les deux chaînes source et affirmer une valeur d'époque. Ce test protège l'arithmétique de décalage sans épingler la prose d'affichage dépendante des paramètres régionaux.
L'indicateur manquant - un simple 2024-05-01T10:00:00 est ambigu et comment différentes langues l'interprètent.
Le cas du désignateur manquant nécessite un raffinement. Une date nue telle que `2025-02-03` est lue au format UTC selon la règle ECMAScript implémentée et testée ici. Une date-heure nue telle que `2025-02-03T10:00:00` est lue comme locale et marquée. Appeler les deux simplement « ambigus » serait en contradiction avec le code.
La forme sûre et pratique pour un instant d'échange comprend toujours Z ou un décalage. Une date-heure locale peut être intentionnelle lorsqu'elle est saisie via le contrôle `datetime-local` du panneau, mais copiez la chaîne ISO résultante avant de la partager. Cette conversion enregistre l'instant où l'environnement actuel dérive de l'horloge murale.
Un désignateur manquant n'est pas toujours ambigu : cette implémentation distingue les dates des dates-heures
ISO 8601 couvre plus de notation que ce que ce convertisseur démontre, mais le référentiel ne fournit pas d'analyseurs ni de tests pour les intervalles, les durées ou les dates de la semaine. L'acceptation de la date peut varier selon la plate-forme pour les chaînes en dehors de ses exemples documentés fiables. Cet article évite donc de présenter le panel comme un validateur général de grammaire ISO.
Si un contrat API autorise un formulaire de date spécialisé, validez-le avec l'analyseur de cette API. Le chemin date-époque de ToolAcre est adapté aux dates-heures explicites et à la forme du sélecteur local qu'il émet. Une analyse de date réussie prouve que ce navigateur a accepté une chaîne, mais que tous les consommateurs conformes aux normes doivent l'accepter.
Les durées, les intervalles et les dates de la semaine sont en dehors des entrées acceptées démontrées ici
Lisez un horodatage jusqu'à son suffixe avant de comparer les champs d'horloge. Z ancre l'horloge écrite à UTC ; un décalage numérique renvoie l'arithmétique à UTC ; une date-heure sans zone demande au navigateur d'utiliser l'interprétation locale. Ces terminaisons répondent à des questions différentes malgré des préfixes d’apparence similaire.
Le convertisseur étiquette sa sortie universelle générée et signale quand il a pris l'heure locale. Utilisez ces avis dans le cadre du résultat, et non dans le cadre de la décoration. Une valeur horaire copiée sans son désignateur constitue une preuve incomplète, tandis qu'une ligne ISO d'époque ou canonique conserve l'instant intact entre les lecteurs.