Ce qu'est un timestamp Unix
Un timestamp Unix est le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC, une référence appelée epoch. C'est le format que l'on retrouve dans les journaux de serveurs, les bases de données, les API et les jetons d'authentification.
Son intérêt : c'est un simple entier, sans fuseau horaire ni format d'écriture. Il se compare, se trie et se soustrait sans ambiguïté — là où « 03/04/2026 » peut désigner le 3 avril ou le 4 mars selon le pays.
Secondes ou millisecondes : le piège n°1
Les systèmes Unix, PHP et Python comptent en secondes. JavaScript et Java comptent en millisecondes. Un facteur 1000 sépare les deux, et l'oublier projette une date en 1970 ou dans un futur lointain.
- 10 chiffres → des secondes (ex.
1780531200). - 13 chiffres → des millisecondes (ex.
1780531200000).
C'est le réflexe le plus rapide pour identifier ce qu'on manipule.
Fuseaux horaires et heure d'été
Un timestamp est toujours en UTC. Le décalage n'apparaît qu'à l'affichage. En France on est à UTC+1 en hiver et UTC+2 en été : une même valeur s'affiche donc avec une ou deux heures d'écart selon la saison. Stocker en UTC et ne convertir qu'au moment de l'affichage évite l'essentiel des bugs de dates.
Le bug de l'an 2038
Les systèmes qui stockent le timestamp dans un entier signé de 32 bits ne peuvent pas dépasser 2 147 483 647, valeur atteinte le 19 janvier 2038 à 03:14:07 UTC. Au-delà, le compteur repasse en négatif et la date bascule en 1901. Les systèmes 64 bits n'ont pas cette limite, mais des colonnes de bases de données et des équipements embarqués sont encore concernés.