Outils Malins

Conversion timestamp Unix ↔ date

Convertissez un timestamp Unix (secondes ou millisecondes) en date ISO 8601, et inversement. Affichage Paris et UTC.

Conversion timestamp Unix ↔ date

Bidirectionnel : depuis un timestamp Unix (secondes ou millisecondes) ou depuis une date ISO.

Maintenant : 0 s · 0 ms

Qu'est-ce qu'un timestamp Unix ?

Un timestamp Unix (ou « epoch time ») est le nombre de secondes écoulées depuis le 1ᵉʳ janvier 1970 à minuit UTC. C'est une représentation universelle du temps utilisée dans presque tous les systèmes informatiques : bases de données, API, logs, certificats SSL, JWT.

Exemple : 1731000000 correspond au 7 novembre 2024 à 19:20:00 UTC. La même valeur exprimée en millisecondes donnerait 1731000000000.

Secondes vs millisecondes

FormatLongueurUsage
Secondes10 chiffresUnix classique, PHP time(), Python time(), MySQL UNIX_TIMESTAMP
Millisecondes13 chiffresJavaScript Date.now(), Java System.currentTimeMillis()

Conversion dans les principaux langages

// JavaScript
Math.floor(Date.now() / 1000)            // timestamp en s
new Date(timestamp * 1000)                // timestamp → Date

// Python
import time
int(time.time())
from datetime import datetime
datetime.fromtimestamp(timestamp)

// PHP
time()
date('Y-m-d H:i:s', $timestamp)

// SQL (PostgreSQL)
EXTRACT(EPOCH FROM NOW())
TO_TIMESTAMP(1731000000)

// Bash
date +%s
date -d @1731000000

Bug de l'an 2038

Sur les systèmes 32 bits signés, le timestamp Unix maximum est 2 147 483 647 (2³¹ − 1), atteint le 19 janvier 2038 à 03:14:07 UTC. Au-delà, on entre dans un dépassement (overflow) qui ramène la valeur à 1901. Tous les systèmes 64 bits modernes utilisent un entier suffisamment grand pour repousser ce problème à environ 292 milliards d'années. Linux a basculé en time_t 64 bits dès le noyau 5.6 (2020).

ISO 8601 : le standard international

Format universel et lisible : 2026-05-11T14:30:00Z. Le Z signifie UTC. Avec fuseau : 2026-05-11T16:30:00+02:00. Toujours préférable au format US ambigu (MM/DD/YYYY) ou français (DD/MM/YYYY).

Pièges courants

  • Multiplier ou diviser par 1 000 quand on passe entre s et ms (oublier = décalage de 50 ans).
  • Confondre l'heure locale et UTC : un timestamp s'affiche différemment selon le fuseau choisi côté client.
  • Stocker des dates en string dans une base de données : préférez TIMESTAMP ou DATETIME natifs.
  • Ignorer le passage à l'heure d'été : utilisez toujours UTC pour le stockage, le fuseau pour l'affichage uniquement.

Questions fréquentes

Timestamp Unix ?

Secondes depuis 1970-01-01 00:00:00 UTC.

Secondes ou ms ?

Secondes (10 chiffres) classique, ms (13 chiffres) en JS / Java.

Bug 2038 ?

Overflow 32 bits le 19 janvier 2038. Résolu sur systèmes 64 bits.

Format ISO 8601 ?

2026-05-11T14:30:00Z (UTC) ou +02:00 (avec fuseau).

UTC ou local ?

Le timestamp est en UTC. Le fuseau s'applique à l'affichage.

Outils complémentaires

Sources

  • POSIX.1-2017 — Open Group Base Specifications (opengroup.org)
  • RFC 3339 — Date and Time on the Internet
  • ISO 8601 — Date and time format