Convertisseur de timestamp Unix — epoch en date et date en epoch
Convertissez des secondes, millisecondes, microsecondes ou nanosecondes epoch en dates dans n’importe quel fuseau horaire, et inversement. Horloge en direct, mode lot, extraits de code.
Timestamp vers date
Date vers timestamp
Début et fin du jour, de la semaine, du mois, de l’année
Conversion par lot
| 1700000000 | s | |
| 1760572800000 | ms | |
| -1 | s | |
| 2038-01-19 03:14:07 | date | |
| 0 | s |
Obtenir le timestamp actuel dans votre code
Math.floor(Date.now() / 1000) // seconds Date.now() // milliseconds
Fonctionne entièrement dans votre navigateur. Rien de ce que vous saisissez n’est envoyé ni stocké. Parcourir tous les outils gratuits.
Un problème, ou quelque chose à améliorer ? Nous lisons chaque message et corrigeons vite.
Ce convertisseur de timestamp Unix transforme une valeur epoch en date lisible et une date en valeur epoch, en UTC, dans votre propre fuseau horaire ou dans n’importe lequel des quelque 400 fuseaux IANA que connaît votre navigateur. Collez 1760572800, 1760572800000 ou une valeur en nanosecondes à 19 chiffres tirée d’une ligne de journal : l’unité est détectée d’après le nombre de chiffres, et vous pouvez la forcer quand une valeur est ambiguë.
Les valeurs grandes et inhabituelles sont traitées exactement. Les chiffres sont analysés en BigInt : un timestamp en nanosecondes garde ses derniers chiffres au lieu d’être arrondi ; les timestamps négatifs antérieurs à 1970 sont arrondis à la bonne milliseconde ; et toute valeur hors de la plage des dates JavaScript (environ 271 821 av. J.-C. à 275 760 apr. J.-C.) est signalée comme hors limites au lieu d’afficher "Invalid Date". Les décalages horaires, y compris les changements d’heure, proviennent des données de fuseaux horaires de votre navigateur. Rien de ce que vous saisissez ne quitte la page.
Mode d’emploi
- Collez un timestamp dans le premier champ. Le tableau l’affiche en UTC, dans votre fuseau, dans le fuseau sélectionné, en ISO 8601, en RFC 2822 et en temps relatif.
- Si l’unité est fausse (une valeur à 12 chiffres peut correspondre à des secondes après l’an 5138 ou à des millisecondes en 1973), choisissez-la dans le menu Unité.
- Pour la conversion inverse, saisissez une date au format YYYY-MM-DD HH:mm:ss et choisissez le fuseau dans lequel elle a été écrite ; les chaînes ISO avec Z ou un décalage sont lues telles quelles.
- Utilisez le tableau début/fin pour les requêtes sur des plages comme « tout ce mois-ci », et la zone de lot pour une colonne de valeurs issue d’un CSV ou d’un journal.
- Copiez n’importe quelle valeur avec son bouton, ou copiez l’extrait de votre langage pour obtenir le timestamp actuel dans le code.
Questions fréquentes
Qu’est-ce qu’un timestamp Unix ?
Un timestamp Unix (temps epoch) est le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC, sans compter les secondes intercalaires. Il n’a pas de fuseau horaire : le même instant a le même timestamp partout, c’est pourquoi les bases de données et les API l’utilisent. Beaucoup de systèmes stockent plutôt des millisecondes (Date.now() en JavaScript, currentTimeMillis en Java), et certains des microsecondes ou des nanosecondes.
Comment savoir si un timestamp est en secondes ou en millisecondes ?
Comptez les chiffres. Un timestamp actuel compte 10 chiffres en secondes, 13 en millisecondes, 16 en microsecondes et 19 en nanosecondes. Cet outil utilise automatiquement ces seuils. La seule plage ambiguë va de 11 à 12 chiffres : soit des secondes dans un futur lointain, soit des millisecondes au début des années 1970 ; choisissez alors l’unité à la main.
Qu’est-ce que le problème de l’an 2038 ?
Les systèmes qui stockent le temps Unix dans un entier signé de 32 bits ne peuvent compter que jusqu’à 2 147 483 647, soit le 19 janvier 2038 à 03:14:07 UTC. Une seconde plus tard, la valeur bascule en nombre négatif et se lit comme décembre 1901. Les systèmes d’exploitation, langages et bases de données modernes utilisent un temps sur 64 bits, mais les vieux appareils embarqués, certains formats de fichiers et les colonnes de base de données déclarées en INT 32 bits ont toujours le problème.
Les timestamps Unix incluent-ils les secondes intercalaires ?
Non. Le temps Unix considère chaque jour comme durant exactement 86 400 secondes : une seconde intercalaire n’est pas comptée, et le timestamp se répète ou se fige pendant une seconde quand elle survient. Cela simplifie les calculs de dates, au prix d’un écart avec le temps atomique (TAI) égal au cumul des secondes intercalaires, actuellement 37. Pour presque toutes les applications, cela n’a aucune importance.
Un timestamp Unix peut-il être négatif ?
Oui. Les valeurs négatives comptent à rebours depuis 1970 : -1 correspond au 31 décembre 1969 à 23:59:59 UTC, et -86400 au début de ce jour. La plupart des langages gèrent correctement les timestamps négatifs, mais certaines anciennes API et fonctions de tableur les refusent : vérifiez avant de stocker des dates de naissance ou des dates historiques en valeurs epoch.
Pourquoi l’heure convertie semble-t-elle décalée de quelques heures ?
Presque toujours à cause d’une confusion de fuseau horaire : le timestamp est correct, mais il a été affiché en UTC alors que vous attendiez l’heure locale, ou une date locale a été interprétée comme UTC. Un timestamp ne porte jamais de fuseau. Vérifiez le sélecteur de fuseau ici et, dans le code, assurez-vous qu’une date sans décalage est interprétée dans le fuseau voulu.
Secondes, millisecondes, microsecondes, nanosecondes : qui utilise quoi
• Secondes (10 chiffres) : time() Unix et POSIX, time() en PHP, int(time.time()) en Python, EXTRACT(EPOCH) en PostgreSQL, claims exp/iat/nbf des JWT, la plupart des API HTTP.
• Millisecondes (13 chiffres) : Date.now() en JavaScript, System.currentTimeMillis() en Java, Elasticsearch et de nombreuses API JSON, timestamps des enregistrements Kafka.
• Microsecondes (16 chiffres) : stockage interne des timestamps de PostgreSQL, précision de datetime en Python, TIMESTAMP_MICROS de Google BigQuery.
• Nanosecondes (19 chiffres) : time.UnixNano() en Go, time.time_ns() en Python, InfluxDB et le remote-write de Prometheus, clock_gettime sous Linux. Un nombre JavaScript ne peut pas les contenir exactement, c’est pourquoi cet outil les analyse en BigInt.
Quand deux systèmes diffèrent d’un facteur 1 000, l’un est en secondes et l’autre en millisecondes. Cette seule erreur explique la plupart des bugs « la date affiche 1970 » et « la date affiche l’an 50 000 ».
Fuseaux horaires et heure d’été : ce qui peut mal tourner
Convertir un timestamp en heure locale est toujours sans ambiguïté : un instant correspond à une seule heure affichée dans chaque fuseau. L’inverse n’est pas vrai. Quand on avance les horloges, une heure locale comme 02:30 le jour du changement n’existe jamais ; quand on les recule, 01:30 se produit deux fois.
Ce convertisseur suit les mêmes règles que le comportement par défaut de l’API Temporal de JavaScript : une heure sautée est lue avec le décalage d’avant le changement (02:30 devient donc 03:30 heure d’été), et une heure répétée correspond à la première occurrence. Si votre code applique une autre règle, le résultat peut différer d’une heure autour de ces deux dates chaque année.
La pratique la plus sûre consiste à stocker et transmettre les instants sous forme de timestamps UTC ou de chaînes ISO 8601 avec un décalage explicite, et à ne convertir en heure locale que pour l’affichage, en utilisant un nom de fuseau IANA comme America/Toronto plutôt qu’un décalage fixe comme -05:00, qui est faux la moitié de l’année.
ISO 8601, RFC 2822 et temps Unix
L’ISO 8601 (2026-10-16T08:00:00Z ou 2026-10-16T04:00:00-04:00) se trie correctement comme du texte, est sans ambiguïté, et c’est ce qu’attendent les API JSON, les attributs datetime HTML et la plupart des bases de données. Utilisez-le chaque fois qu’un humain risque de lire la valeur.
Le RFC 2822 (Fri, 16 Oct 2026 08:00:00 +0000) est le format des e-mails et des en-têtes HTTP. Il est lisible mais ne se trie pas comme du texte, et il n’est défini qu’à partir de l’année 1900.
Un timestamp Unix est le plus compact et le plus rapide à comparer, mais il est illisible sans convertisseur et ne donne aucune indication sur son unité. Une règle raisonnable : le temps Unix à l’intérieur d’un système, l’ISO 8601 à ses frontières.
Outils gratuits similaires
- Générateur d’expressions cron — Créez une planification cron avec des menus ou collez-en une, lisez-la en langage clair et voyez les 10 prochaines exécutions dans votre fuseau et en UTC. Gratuit, dans le navigateur.
- Décodeur JWT — Décodez l’en-tête et la charge utile d’un JWT, lisez l’expiration en clair, vérifiez les signatures HS, RS, PS et ES ou signez un nouveau jeton. Rien ne quitte votre navigateur.
- Générateur d’UUID — Générez en masse des UUID v4 ou v7 ordonnés dans le temps, des ULID et des NanoID, ou collez un identifiant pour voir sa version et son horodatage intégré.
- Convertisseur de base numérique — Convertissez des entiers de toute taille entre binaire, octal, décimal, hexadécimal, base 32, base 36 et toute base de 2 à 36, avec une vue en complément à deux.