Eazy Toolbox
Aller à l'outil

Générateur de timestamp Unix

L'instant présent dans tous les formats dont vous aurez probablement besoin : secondes et millisecondes Unix, ISO 8601, UTC, datetime SQL et RFC 2822.

Vos données ne quittent jamais votre navigateur. Cet outil fonctionne entièrement sur votre appareil.

Current time

Secondes ou millisecondes ?

Un timestamp Unix compte par convention les secondes écoulées depuis le 1er janvier 1970 UTC. JavaScript fait figure d'exception notable : Date.now() renvoie des millisecondes, soit un facteur 1000 de plus.

Ce décalage est l'un des bogues de date les plus fréquents du développement web. Une valeur en millisecondes lue comme des secondes atterrit environ 50 000 ans dans le futur ; une valeur en secondes lue comme des millisecondes retombe en janvier 1970.

secondes      → 10 chiffres (jusqu'en 2286)
millisecondes → 13 chiffres

Pourquoi un timestamp est toujours en UTC

Un timestamp Unix compte les secondes depuis un instant fixe : il n'a donc aucun fuseau horaire. La même valeur désigne le même moment partout dans le monde, ce qui explique précisément pourquoi c'est la bonne chose à stocker.

Ne convertissez vers un fuseau local qu'au moment de l'affichage. Stocker des heures locales crée une ambiguïté deux fois par an, lorsque l'heure précédant un changement d'heure se répète.

Le problème de 2038

Les systèmes qui stockent un timestamp dans un entier signé 32 bits débordent à 03:14:07 UTC le 19 janvier 2038 et rebasculent en 1901. Les plateformes modernes emploient des valeurs 64 bits et ne sont pas concernées, mais les systèmes embarqués et les vieux formats de fichiers peuvent encore l'être.

Questions fréquentes

Qu’est-ce qu’un timestamp Unix ?

Le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC, instant appelé époque Unix. C'est un nombre unique sans fuseau horaire, ce qui le rend sans ambiguïté à stocker et à comparer.

Pourquoi JavaScript donne-t-il un nombre bien plus grand ?

Date.now() renvoie des millisecondes et non des secondes : la valeur est donc 1000 fois plus grande. Divisez par 1000 et prenez la partie entière pour obtenir un timestamp Unix conventionnel.

Les timestamps Unix tiennent-ils compte des secondes intercalaires ?

Non. Le temps Unix fait délibérément comme si chaque journée comptait exactement 86 400 secondes : une seconde intercalaire est donc soit répétée, soit sautée. Cela garde l'arithmétique simple, au prix d'un écart infra-seconde avec le temps atomique.

Dans quel fuseau horaire est un timestamp Unix ?

Aucun — c'est un décompte absolu depuis un instant fixe, ce qui équivaut à UTC. Un fuseau n'est appliqué qu'au moment de le mettre en forme pour l'affichage.