Convertisseur de timestamp Unix
Convertissez un timestamp Unix en date lisible, ou une date en timestamp. Le sens est détecté automatiquement, en secondes comme en millisecondes.
Ce que compte un timestamp Unix
Un timestamp Unix est le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC, instant appelé epoch. C’est un entier, sans fuseau horaire, sans format, sans ambiguïté : deux serveurs situés à l’opposé de la planète qui enregistrent le même évènement écrivent le même nombre. Toute la difficulté de la manipulation des dates — formats régionaux, heure d’été, fuseaux — disparaît dans cette représentation.
C’est pour cette raison qu’on le retrouve partout : colonnes de base de données, jetons d’authentification, en-têtes HTTP, journaux de serveur, API. Le fuseau n’intervient qu’à l’affichage, au moment de présenter l’instant à un humain.
Secondes ou millisecondes
La convention Unix compte en secondes, mais JavaScript et Java comptent en millisecondes. Un facteur mille sépare donc les deux mondes, et l’erreur la plus banale consiste à mélanger les deux : un timestamp en millisecondes interprété comme des secondes projette la date vers l’an 56 000, l’inverse la ramène en janvier 1970. Le nombre de chiffres permet de trancher d’un coup d’œil.
| Valeur | Chiffres | Lecture |
|---|---|---|
| 1 767 225 600 | 10 | Secondes — 1er janvier 2026 à 00:00 UTC |
| 1 767 225 600 000 | 13 | Millisecondes — même instant |
| 0 | 1 | 1er janvier 1970 à 00:00 UTC |
| 1 000 000 000 | 10 | 9 septembre 2001 à 01:46:40 UTC |
| 2 000 000 000 | 10 | 18 mai 2033 à 03:33:20 UTC |
| 2 147 483 647 | 10 | 19 janvier 2038 à 03:14:07 UTC |
L’outil applique cette règle : au-delà de onze chiffres, la valeur est lue en millisecondes. En dessous, en secondes.
Le bug de l’an 2038
La dernière ligne du tableau n’est pas une coïncidence : 2 147 483 647 est le plus grand entier signé sur 32 bits. Les systèmes qui stockent encore le temps dans ce format déborderont le 19 janvier 2038 à 03:14:07 UTC et repasseront brutalement en 1901. Le correctif est connu depuis longtemps — stocker le temps sur 64 bits, ce que font les systèmes modernes — mais il reste du matériel embarqué et des formats de fichiers anciens à migrer. Le même genre de limite existe pour les dates antérieures à 1970, représentées par des timestamps négatifs : toutes les bibliothèques ne les acceptent pas.
Fuseaux, heure d’été et ISO 8601
Un timestamp n’a pas de fuseau ; son affichage en a un. Le résultat donne donc trois lectures du même instant : votre heure locale (fuseau de votre appareil, heure d’été comprise), l’heure UTC, et la notation ISO 8601 du type 2026-09-11T12:30:00.000Z. Le Z final signifie « UTC » ; un décalage s’écrit sinon +02:00.
Règle pratique pour éviter les bugs de dates : stockez et transmettez toujours en UTC, convertissez uniquement à l’affichage. Une date enregistrée en heure locale devient inexploitable dès qu’elle franchit un changement d’heure ou une frontière de fuseau. Une date ISO 8601 sans indication de fuseau est interprétée ici comme une heure locale, ce qui correspond à ce qu’attend un humain qui écrit 2026-09-11 14:30.
La conversion se fait entièrement dans votre navigateur, à partir de son horloge et de son fuseau : aucune requête réseau n’est émise. Si la date affichée vous semble décalée d’une heure, vérifiez d’abord le réglage de votre système. Pour calculer une durée entre deux dates, le calculateur d’âge est plus adapté ; pour inspecter un timestamp trouvé dans une réponse d’API, enchaînez avec le formateur JSON.
Questions fréquentes
Pourquoi ma date tombe-t-elle en 1970 ?
Parce que la valeur est proche de zéro pour l’interpréteur qui l’a lue : c’est le symptôme classique d’un timestamp en millisecondes divisé par mille de trop, ou d’un champ vide converti en 0. Vérifiez le nombre de chiffres : dix pour des secondes, treize pour des millisecondes.
Le timestamp tient-il compte des secondes intercalaires ?
Non. Le temps Unix fait comme si chaque jour comptait exactement 86 400 secondes, ce qui ignore les secondes intercalaires ajoutées de temps à autre au temps universel. L’écart est de quelques dizaines de secondes sur cinquante ans : négligeable pour une application, gênant pour de l’astronomie ou de la métrologie.
Comment obtenir un timestamp dans mon code ?
En JavaScript, Math.floor(Date.now() / 1000) pour des secondes, Date.now() pour des millisecondes. En PHP, time(). En Python, int(time.time()). En MySQL, UNIX_TIMESTAMP(), et FROM_UNIXTIME() pour l’inverse. En ligne de commande, date +%s.
Puis-je convertir une date avant 1970 ?
Oui : saisissez-la normalement, le timestamp obtenu sera négatif. C’est parfaitement valide, mais toutes les bibliothèques et toutes les bases de données ne gèrent pas les valeurs négatives ; pour des dates historiques, une colonne de type date est préférable à un timestamp.