Outils de développement · Convertisseur d'horodatage Unix
Secondes intercalaires et heure Unix : pourquoi l'époque prétend qu'elles n'existent pas
· Contexte
horodatages Validation unix-time fuseaux horaires
UTC a inséré des secondes intercalaires depuis 1972, mais l'heure Unix ne les compte tout simplement pas, ce qui signifie que certaines secondes se sont produites deux fois. Cet article explique pourquoi, ce qu'est le diffamation et pourquoi il est prévu que cette pratique prenne fin.
La seconde qui s'est produite deux fois : un 23:59:60 dans un système, un 23:59:59 répété dans un autre et une erreur de clé en double à minuit.
ToolAcre ne peut pas produire une ligne ISO se terminant par `23:59:60`. Son test nomme la limite de seconde intercalaire et s'attend à ce qu'une valeur d'époque soit formatée comme `2016-12-31T23:59:59.000Z` et la suivante comme `2017-01-01T00:00:00.000Z`. Il n’y a pas de seconde affichable supplémentaire entre eux.
Ce fait peut affecter les journaux dont la source externe a utilisé une autre convention, mais ce référentiel ne contient aucune preuve d'incident de clé en double. Si des étiquettes répétées apparaissent dans un système, inspectez cette horloge et ce chemin de stockage plutôt que de les attribuer automatiquement au convertisseur.
Un système nécessitant une étiquette unique pour chaque seconde physique a donc besoin de plus de contexte que ce mappage Unix-to-Date. Le convertisseur ne peut pas fabriquer une étiquette que son modèle omet.
ToolAcre prouve qu'il n'est pas représentable 23:59:60 ; il ne documente pas les incidents de clé en double
Le plan expliquait le temps atomique, la rotation de la Terre et un seuil de tolérance. Ces allégations scientifiques et normatives ne sont pas établies par le code d’horodatage ou les tests. Ils sont intentionnellement omis plutôt que paraphrasés de mémoire. Le mécanisme ici ne prouve pas les raisons qui sous-tendent la politique mondiale de chronométrage.
Pour utiliser cette voie, les preuves nécessaires sont plus simples : la date et la sortie ISO exposent les secondes étiquettes ordinaires, et l'époque de style POSIX avance au-delà de la limite testée. Un traitement sourcé de la gouvernance à la seconde intercalaire nécessiterait du matériel faisant autorité au-delà des chemins de stockage autorisés.
Cette frontière est explicite plutôt qu'évasive : les tests logiciels répondent à des questions de représentation, tandis que l'histoire scientifique a besoin de matériel écrit à cet effet et révisé selon ses propres termes.
La justification physique des secondes intercalaires nécessite des sources extérieures à ce référentiel
Le modèle implémenté se comporte comme si les jours civils sur son axe avaient 86,400 secondes Unix numérotées. Les entrées de nombres entiers consécutifs diffèrent d'une seconde, y compris au-delà de la limite de 2016 année. `fromEpoch` multiplie chacun par 1,000 et Date formate le nombre de millisecondes résultant.
Appeler cela « ignorer » les secondes intercalaires décrit une sortie observable : aucune valeur Unix unique ne correspond à une étiquette `:60`. Cela n'implique pas que l'horloge de chaque machine avance de manière identique lors d'une insertion réelle. Le convertisseur accepte un décompte ; il n'échantillonne ni ne discipline l'horloge hôte.
L'arithmétique sur des plages plus grandes suit la même convention, donc la soustraction de deux valeurs Unix mesure leur différence de nombre de style POSIX plutôt que de reconstruire les étiquettes de saut omises.
La conversion testée n'a pas d'étiquette de seconde intercalaire entre les valeurs d'époque consécutives
Les systèmes peuvent appliquer des étapes, des répétitions ou des frottis, mais le référentiel n'identifie pas quels prestataires utilisent quelle méthode, sur quel intervalle ou avec quelle formule. Publier ces détails sans preuves directes créerait une précision dangereuse sur le plan opérationnel. Cet article ne fait donc aucune promesse d’horloge spécifique à la plateforme.
Si les événements proches d'une limite de saut sont importants, conservez la documentation de l'horloge source et les valeurs brutes. Deux systèmes avec un traitement différent peuvent être en désaccord même après que les deux valeurs soient formatées au format UTC. La conversion seule ne peut pas concilier leur comportement d'échantillonnage ou récupérer une distinction d'échelle omise.
Le choix d'un runtime peut également affecter l'ordre de courte durée autour de l'événement. Préservez les compteurs monotones ou les données de séquence spécifiques à la source lorsque cette distinction est importante sur le plan opérationnel.
Le comportement des pas d'horloge et des frottis est spécifique à la plate-forme et n'est pas vérifié ici
Entrez 1,483,228,799 secondes : le résultat ISO vérifié est `2016-12-31T23:59:59.000Z`. Incrémentez l'entrée une fois à 1,483,228,800 : le résultat est `2017-01-01T00:00:00.000Z`. La soustraction des nombres entiers en donne un, correspondant à la progression affichée dans ce modèle.
Les lignes locales peuvent afficher des dates ou des décalages différents selon le navigateur, mais elles dérivent de ces mêmes instants. Utilisez les lignes ISO pour la vérification des limites. Un changement de zone locale n’a aucun rapport avec l’existence ou non d’une étiquette de seconde intercalaire.
La paire est un test de régression utile car il n'y a aucune dépendance locale dans les chaînes ISO. Il verrouille directement le comportement du convertisseur au niveau du front concerné.
Exemple concret : la limite 2016 testée du référentiel
Le classeur faisait référence à une résolution 2022 et à une date limite future. Aucune norme ou source politique ne fait partie des preuves de mise en œuvre, donc ni date ni prévision ne sont affirmées ici. La politique de chronométrage peut changer et mérite une citation faisant autorité au moment de la publication.
L'omission de cette affirmation n'affaiblit pas les directives du logiciel. Les données existantes doivent encore être documentées concernant leur échelle, leur unité et leur source d'horloge. Le comportement actuel d’un convertisseur reste testable indépendamment des décisions concernant les futures pratiques civiles.
Les responsables peuvent ajouter un contexte politique ultérieurement en citant directement la résolution. En attendant, exclure un délai est plus précis que publier une garantie future non étayée.
Les futures résolutions politiques sont omises sans source faisant autorité
TAI, GPS et autres échelles peuvent représenter le temps différemment, mais ToolAcre ne propose aucun sélecteur ni table de décalage pour elles. Coller un nombre de secondes Unix applique simplement l'interprétation de style 1970 POSIX. Un résultat lisible peut toujours être sémantiquement erroné.
Transformez d'autres échelles avec une source qui définit leur origine et leur relation à l'instant pertinent, puis inspectez la valeur Unix résultante. N'ajoutez pas de constante mémorisée : les relations impliquant l'historique des sauts sont exactement celles où l'arithmétique sans source devient fragile.
L'absence de mode est visible dans les trois options d'unité de l'interface utilisateur. Aucun ne change l’échelle de temps ; automatique sélectionne simplement entre deux résolutions Unix.
Les autres échelles de temps ne sont pas prises en charge par l'implémentation de ce convertisseur Unix.
Pour ce convertisseur, la règle vérifiée est une étape directe de 23:59:59 à 00:00:00 à la limite testée. Ce modèle prend en charge l'arithmétique d'époque ordinaire et explique pourquoi aucune sortie `:60` n'apparaît. Il ne certifie pas comment l’horloge du système d’exploitation s’est comportée lorsque la limite réelle a dépassé.
Lorsque la précision de la manipulation du saut est importante, la conversion est la dernière étape de présentation, et non la source de preuves. Collectez d'abord la documentation à l'échelle de l'horloge, le comportement de synchronisation et les champs d'événements bruts. ToolAcre peut alors montrer ce que signifie un nombre Unix déclaré sous son modèle testé.
Pour les journaux ordinaires éloignés des limites de saut, cette nuance change rarement l'affichage. Cependant, à proximité des limites sensibles, nommer le modèle évite les fausses affirmations de fidélité physique à la seconde.