S
SoSimple.tools
Outils dev et design

Convertisseur de timestamp Unix : epoch en date lisible et retour

Collez un timestamp pour le lire comme une date, ou choisissez une date pour obtenir son timestamp. L’outil détecte les secondes, millisecondes, microsecondes et nanosecondes et affiche l’UTC ainsi que le fuseau horaire choisi

Fonctionne dans votre navigateur : vos données restent sur votre appareil

Timestamp et date

Chiffres uniquement ; ajoutez un signe moins pour les dates avant 1970. Modifier un champ met l’autre à jour. Plage valide : environ ±8,64 × 10¹⁵ millisecondes autour de 1970.

Résultat de la conversion
UTC (ISO 8601)
2023-11-14T22:13:20Z
Détecté comme secondes (nombre de chiffres : 10)
Secondes
1700000000
Millisecondes
1700000000000
Microsecondes
1700000000000000
Nanosecondes
1700000000000000000
Dans le fuseau horaire choisi
mardi 14 novembre 2023 à 22:13:20 UTC
2023-11-14T22:13:20Z (UTC)
Format RFC 2822 (UTC)
Tue, 14 Nov 2023 22:13:20 +0000
Jour de la semaine et jour de l’année (UTC)
mardi, 318ᵉ jour de l’année

Le temps Unix compte les secondes depuis 1970-01-01 00:00:00 UTC et ignore les secondes intercalaires. Le fuseau horaire ne change que l’affichage de l’instant.

Partager cet outil

Comment utiliser cet outil

  1. Collez un timestamp Unix ou appuyez sur « Utiliser l’heure actuelle ». Le champ de date se remplit aussitôt.
  2. Laissez l’unité sur Auto, ou choisissez secondes, millisecondes, microsecondes ou nanosecondes.
  3. Choisissez un fuseau horaire et lisez le résultat en UTC et dans ce fuseau. Pour aller dans l’autre sens, modifiez la date et l’heure et lisez le timestamp dans les quatre unités. « Copier le résultat » permet de le conserver.

Exemple concret

Le timestamp 1700000000 compte 10 chiffres ; il est donc lu en secondes : 2023-11-14T22:13:20Z en UTC. Dans America/Sao_Paulo (UTC−03:00 ce jour-là), l’horloge indique 19:13:20 le même mardi, 318ᵉ jour de 2023. Ajoutez trois zéros, 1700000000000, et l’outil détecte des millisecondes et affiche le même instant. Dans l’autre sens, 2024-01-01 00:00:00 en UTC vaut 1704067200 secondes.

Méthodologie

Le manuel Linux définit le temps Unix comme le nombre de secondes écoulées depuis l’Epoch, 1970-01-01 00:00:00 UTC, et précise que les systèmes Linux suivent normalement l’exigence POSIX selon laquelle cette valeur ignore les secondes intercalaires (page de manuel time(2)). POSIX donne l’arithmétique : chaque jour compte exactement 86400 secondes ; un timestamp vaut donc le nombre de jours depuis l’Epoch multiplié par 86400, plus les secondes écoulées dans la journée. JavaScript, qui exécute cet outil, stocke le même instant en millisecondes depuis l’Epoch et accepte des valeurs jusqu’à ±8,64 × 10¹⁵ ms, du 20 avril 271821 av. J.-C. au 13 septembre 275760 apr. J.-C. (MDN). Les dates sont écrites au format ISO 8601, dans le profil défini par la RFC 3339, avec « Z » pour l’UTC ou un décalage comme −03:00. Tout s’exécute dans votre navigateur, et les règles de fuseaux horaires viennent des données du navigateur, pas de ce site.

Formules utilisées : La détection de l’unité compte les chiffres avant la virgule : jusqu’à 11, ce sont des secondes ; 12 à 14, des millisecondes ; 15 à 17, des microsecondes ; 18 ou plus, des nanosecondes. La valeur est conservée exactement en nombre entier de nanosecondes, si bien que les valeurs de 19 chiffres gardent chaque chiffre. Millisecondes = nanosecondes ÷ 1 000 000, arrondi à l’inférieur. Le décalage du fuseau est la différence entre l’heure que le navigateur indique pour cet instant dans le fuseau choisi et l’UTC. Pour une date, l’outil part de l’heure comme si elle était en UTC, soustrait le décalage du fuseau autour de ce jour et vérifie le résultat ; si un changement d’heure le rend ambigu ou impossible, l’outil le signale.
Limites de la méthode : Les petites valeurs sont ambiguës : 1000 peut être 1000 secondes ou 1000 ms ; Auto la lit comme des secondes et vous pouvez choisir Millisecondes pour la forcer. Les vues par fuseau couvrent les années 1 à 9999, et les dates antérieures à 1970 dépendent des données historiques de fuseaux du navigateur, qui peuvent varier selon le navigateur et la version. Une heure qui se produit deux fois (retour en arrière des horloges) est résolue vers l’instant le plus tôt, et une heure inexistante (avance des horloges) vers l’instant qui suit le saut. Les secondes intercalaires ne sont pas modélisées : l’affichage 23:59:60 ne peut pas être saisi. Après 2038-01-19 03:14:07 UTC, les valeurs ne tiennent plus dans un compteur de secondes signé sur 32 bits ; l’outil le signale mais les convertit quand même.

Quatre erreurs de timestamp et comment les repérer

La plupart des dates fausses viennent de quelques causes qui reviennent. Vérifiez-les avant de déboguer autre chose.

  • Des secondes lues comme des millisecondes, ou l’inverse. 1700000000 pris pour des millisecondes donne le 1970-01-20, soit 19 jours après l’Epoch, et 1700000000000 pris pour des secondes tombe en l’an 55840. Une date proche de 1970 ou très lointaine signale en général la mauvaise unité.
  • Confondre heure locale et UTC. Un timestamp est un instant ; l’heure affichée dépend du fuseau. 1700000000 vaut 22:13:20 en UTC et 19:13:20 à São Paulo, et les deux sont corrects.
  • Stocker des secondes dans un entier signé sur 32 bits. La plus grande valeur, 2147483647, correspond au 2038-01-19 03:14:07 UTC et la plus petite, −2147483648, au 1901-12-13 20:45:52 UTC. La page de manuel time(2) recommande un time_t plus large pour les logiciels qui doivent fonctionner après 2038.
  • Attendre des secondes intercalaires. Le temps Unix compte chaque jour pour 86400 secondes ; ajouter 86400 à un timestamp donne donc toujours la même heure UTC un jour plus tard.

Outils similaires

Questions fréquentes

Qu’est-ce qu’un timestamp Unix ? ▼

C’est le nombre de secondes écoulées depuis 1970-01-01 00:00:00 UTC, l’Epoch Unix, sans compter les secondes intercalaires. Par exemple, 1700000000 correspond à 2023-11-14T22:13:20Z. Un seul nombre pour un seul instant se stocke, se trie et se compare facilement, et ne dépend ni d’un fuseau horaire ni d’un format de date.

Comment savoir si un timestamp est en secondes ou en millisecondes ? ▼

Comptez les chiffres. Les timestamps de dates proches d’aujourd’hui ont 10 chiffres en secondes, 13 en millisecondes, 16 en microsecondes et 19 en nanosecondes. Le mode Auto applique cette règle et indique ce qu’il a détecté. Les très petits nombres comme 1000 sont ambigus ; choisissez vous-même l’unité si vous la connaissez.

Que se passe-t-il en 2038 ? ▼

2147483647 secondes, soit 2038-01-19 03:14:07 UTC, est la plus grande valeur d’un entier signé sur 32 bits. Un logiciel qui garde les secondes sur 32 bits ne peut pas contenir la seconde suivante et peut repasser à une date de 1901. Le manuel Linux recommande un time_t plus large pour les logiciels destinés à fonctionner après 2038. Cet outil utilise des nombres plus grands : il se contente donc de vous avertir.

Un timestamp Unix a-t-il un fuseau horaire ? ▼

Non. Il désigne un instant unique pour tous les habitants de la Terre. Le fuseau horaire décide seulement quelle heure afficher pour cet instant : 1700000000 vaut 22:13:20 UTC et 19:13:20 dans America/Sao_Paulo. Quand vous modifiez le champ de date, l’outil le lit dans le fuseau choisi.

Le temps Unix inclut-il les secondes intercalaires ? ▼

Non. POSIX compte chaque jour pour exactement 86400 secondes et Linux suit cette règle : le compteur ne bouge pas pour une seconde intercalaire. Ajouter 86400 à un timestamp donne donc toujours la même heure UTC un jour plus tard, et cet outil ne peut pas afficher 23:59:60.