À propos de cet outil
Ce convertisseur transforme un timestamp Unix (le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00 UTC) en date lisible, en heure locale, en UTC et au format ISO 8601, et fait l'inverse pour une date de votre choix. Il détecte si la valeur est en secondes, en millisecondes, en microsecondes ou en nanosecondes, affiche le temps relatif (« il y a 3 heures ») et vous laisse choisir si la date saisie est exprimée en heure locale ou en UTC.
Comment utiliser cet outil
- Collez un timestamp (10 chiffres pour des secondes, 13 pour des millisecondes) ou cliquez sur « Maintenant ».
- Laissez la détection automatique ou forcez l'unité (secondes, millisecondes, microsecondes, nanosecondes).
- Lisez la date locale, la date UTC, le format ISO 8601 et le temps relatif.
- Pour l'inverse, choisissez une date et indiquez si elle est en heure locale ou en UTC : copiez le timestamp en secondes ou en millisecondes.
Qu'est-ce qu'un timestamp Unix ?
Un timestamp Unix (ou « heure Unix », « epoch time ») est le nombre de secondes écoulées depuis l'« epoch », c'est-à-dire le 1er janvier 1970 à 00 h 00 min 00 s UTC. Un seul nombre désigne ainsi un instant précis, quel que soit le fuseau horaire de celui qui le lit : c'est ce qui le rend idéal pour stocker et comparer des dates dans les bases de données, les journaux d'événements, les API et les jetons d'authentification.
| Timestamp | Date et heure (UTC) | Pourquoi elle est remarquable |
|---|---|---|
| 0 | 1er janvier 1970, 00:00:00 | L'origine du temps Unix. |
| 1 000 000 000 | 9 septembre 2001, 01:46:40 | Le milliardième timestamp, fêté par les informaticiens. |
| 2 147 483 647 | 19 janvier 2038, 03:14:07 | Limite d'un entier signé de 32 bits (« bug de l'an 2038 »). |
| 4 294 967 295 | 7 février 2106, 06:28:15 | Limite d'un entier non signé de 32 bits. |
| 10 000 000 000 | 20 novembre 2286, 17:46:40 | Passage à onze chiffres. |
| −2 147 483 648 | 13 décembre 1901, 20:45:52 | Limite basse d'un entier signé de 32 bits : les dates avant 1970 sont négatives. |
Une subtilité importante : la définition POSIX du temps Unix suppose que chaque jour dure exactement 86 400 secondes. Elle ignore donc les secondes intercalaires, ces secondes ajoutées de temps en temps à UTC pour rester proche de la rotation de la Terre. Vingt-sept ont été ajoutées depuis 1972, la dernière le 31 décembre 2016. Le temps Unix n'est donc pas un compte physique de secondes, mais un calendrier simplifié. En 2022, la Conférence générale des poids et mesures a décidé d'élargir, au plus tard en 2035, l'écart autorisé entre UTC et la rotation de la Terre, ce qui revient à abandonner ces ajouts.
Secondes, millisecondes, microsecondes, nanosecondes : repérer l'unité
Le même instant s'écrit avec des nombres très différents selon l'unité du système qui l'a produit. Pour une date actuelle, le nombre de chiffres suffit à les distinguer :
| Unité | Chiffres | Exemple | Où la rencontre-t-on ? |
|---|---|---|---|
| Secondes | 10 | 1791471732 | Unix, PHP time(), MySQL UNIX_TIMESTAMP(), revendications exp et iat des JWT. |
| Millisecondes | 13 | 1791471732000 | JavaScript Date.now(), Java System.currentTimeMillis(). |
| Microsecondes | 16 | 1791471732000000 | Python (datetime), PostgreSQL, certains formats de journaux. |
| Nanosecondes | 19 | 1791471732000000000 | Go (UnixNano()), Java (Instant), bases de séries temporelles. |
En mode automatique, l'outil retient les secondes en dessous de 1011, les millisecondes en dessous de 1014, les microsecondes en dessous de 1017 et les nanosecondes au-delà. Si une date ancienne ou lointaine est mal interprétée, forcez l'unité à la main.
BigInt.Le bug de l'an 2038, en pratique
Les premiers systèmes Unix stockaient le timestamp dans un entier signé de 32 bits, dont la valeur maximale est 2 147 483 647. Une seconde plus tard, le 19 janvier 2038 à 03 h 14 min 08 s UTC, le compteur déborde et passe à −2 147 483 648, ce qui correspond au 13 décembre 1901. Les programmes concernés affichent alors une date erronée, comparent mal deux dates ou plantent.
La plupart des systèmes actuels utilisent des entiers de 64 bits, qui repoussent la limite d'environ 292 milliards d'années. Le risque subsiste là où le 32 bits est encore présent :
- les systèmes embarqués à longue durée de vie (objets connectés, automates industriels, équipements réseau) ;
- les formats de fichiers et protocoles anciens qui réservent 4 octets à la date ;
- certains types de colonnes de bases de données : vérifiez la plage du type
TIMESTAMPde votre version de MySQL ou de MariaDB, historiquement limitée à 2038 ; - les calculs à échéance lointaine : un prêt sur vingt-cinq ans, un certificat ou une date de péremption fixés après 2038 peuvent déjà déborder aujourd'hui.
JavaScript, lui, représente une date par un nombre de millisecondes limité à ±8,64 × 1015, soit jusqu'à l'an 275 760 : l'outil signale les valeurs hors de cette plage.
ISO 8601 et RFC 3339 : écrire une date de façon non ambiguë
Pour échanger une date sous forme de texte, le format de référence est l'ISO 8601, dont la norme RFC 3339 définit un profil adapté à Internet :
2026-10-08T14:30:00+02:00- l'ordre est toujours année, mois, jour, du plus grand au plus petit, ce qui supprime la confusion entre « 03/04 » (3 avril en France, 4 mars aux États-Unis) ;
- la lettre T sépare la date de l'heure ;
- le décalage horaire est obligatoire en RFC 3339 :
+02:00pour Paris en été, ouZpour l'UTC (2026-10-08T12:30:00Zdésigne le même instant) ; - les fractions de seconde sont facultatives :
2026-10-08T12:30:00.250Z.
Ce format se trie dans l'ordre chronologique par simple tri alphabétique tant que les dates ont le même décalage. La méthode toISOString() de JavaScript produit toujours une date UTC avec les millisecondes, terminée par Z, ce qui en fait un bon format d'échange.
Heure locale, UTC et heure d'été : les erreurs classiques
- Une date sans heure et une date avec heure ne sont pas lues de la même façon en JavaScript. D'après la spécification,
new Date('2026-10-08')(date seule) est interprétée à minuit UTC, soit 2 h du matin à Paris, alors quenew Date('2026-10-08T00:00:00')(date et heure sans décalage) est interprétée à minuit heure locale, soit le 7 octobre à 22 h UTC pour un navigateur réglé sur Paris. C'est la source de nombreux « bugs d'un jour ». - Un jour ne fait pas toujours 24 heures. En France en 2026, la journée du 29 mars (passage à l'heure d'été) dure 23 heures et celle du 25 octobre (retour à l'heure d'hiver) en dure 25. Ajouter 86 400 secondes à un timestamp ne donne donc pas « la même heure demain » ces jours-là. Pour décaler d'un jour calendaire, passez par une bibliothèque de dates ou l'outil d'ajout de jours à une date.
- Stockez en UTC, affichez en local. Enregistrez les instants passés sous forme de timestamp ou de date ISO avec décalage, et ne les convertissez qu'au moment de les montrer à l'utilisateur. Pour un événement futur fixé à une heure locale (une réunion à 9 h à Paris dans six mois), conservez l'heure locale et le nom du fuseau (
Europe/Paris), car les règles de changement d'heure peuvent évoluer d'ici là. - Une date « naïve » n'a pas de sens universel. « 2026-10-08 14:30 » sans fuseau désigne un instant différent à Paris et à New York. Exigez toujours un décalage ou un fuseau dans les échanges entre systèmes.
Pour comparer des heures dans plusieurs villes, utilisez le convertisseur de fuseaux horaires.
Convertir un timestamp issu d'une autre époque
Tous les systèmes ne comptent pas à partir de 1970. Pour utiliser l'outil avec ces valeurs, ramenez-les d'abord à l'époque Unix en retirant ou en ajoutant l'écart indiqué (en secondes) :
| Système | Origine | Pour obtenir le temps Unix (en secondes) |
|---|---|---|
| NTP (horloge réseau) | 1er janvier 1900 | valeur − 2 208 988 800 |
| Windows FILETIME | 1er janvier 1601, en pas de 100 ns | valeur ÷ 10 000 000 − 11 644 473 600 |
Apple (Core Foundation, Swift Date) | 1er janvier 2001 | valeur + 978 307 200 |
| Excel (système de dates 1900) | jours depuis le 30 décembre 1899 | (numéro de série − 25 569) × 86 400 |
Questions fréquentes
Qu'est-ce qu'un timestamp Unix ?
C'est le nombre de secondes écoulées depuis l'« epoch », le 1er janvier 1970 à minuit UTC, sans tenir compte des secondes intercalaires. Il identifie un instant de façon indépendante du fuseau horaire, ce qui le rend idéal pour stocker et comparer des dates dans les bases de données et les API.
Comment distinguer secondes et millisecondes ?
Par le nombre de chiffres : 10 chiffres (par exemple 1735689600) correspondent à des secondes, 13 chiffres (1735689600000) à des millisecondes, utilisées par JavaScript et Java, 16 chiffres à des microsecondes et 19 chiffres à des nanosecondes (Go, bases de séries temporelles). L'outil applique cette règle en mode automatique ; forcez l'unité pour une date ancienne ou lointaine.
Qu'est-ce que le « bug de l'an 2038 » ?
Les systèmes qui stockent le timestamp dans un entier signé de 32 bits ne peuvent compter que jusqu'à 2 147 483 647 secondes, soit le 19 janvier 2038 à 03:14:07 UTC. Au-delà, le compteur déborde. Les systèmes modernes utilisent 64 bits, ce qui repousse la limite de plusieurs centaines de milliards d'années.
Pourquoi la date change-t-elle selon le fuseau ?
Le timestamp désigne un instant unique ; c'est son affichage en date et heure qui dépend du fuseau. L'outil affiche donc à la fois l'heure locale de votre appareil et l'heure UTC.
Mes données sont-elles envoyées quelque part ?
Non, la conversion s'effectue entièrement dans votre navigateur.