Convertisseur d’epoch et de timestamp Unix

Collez un temps epoch ou un timestamp Unix pour voir la date en UTC, dans votre fuseau horaire et dans un autre, au format ISO 8601 et RFC 2822, avec le temps écoulé depuis. Secondes, millisecondes, microsecondes et nanosecondes se distinguent par leur longueur, et toute date se reconvertit en temps epoch.

Heure Unix actuelle
Secondes —
Millisecondes —
Des chiffres, avec éventuellement un signe moins ou un point décimal. Les espaces et les virgules entre groupes de chiffres sont ignorés.
Unité

Saisissez un timestamp, ou appuyez sur Utiliser maintenant.

Vous lisez des timestamps dans les journaux d’un serveur ? Comparez les serveurs selon ce qu’ils coûtent vraiment chaque mois. À partir de 3,02 € par mois aujourd’hui, parmi 2 226 serveurs.

De la date et l’heure au timestamp

Dans le fuseau horaire

Saisissez une date et une heure.

Fonctionne dans votre navigateur : rien de ce que vous saisissez n’est envoyé ailleurs.

Comment cela fonctionne

Le temps Unix compte les secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC, l’epoch Unix, sans tenir compte des secondes intercalaires. C’est le même nombre partout sur Terre au même instant, ce qui explique pourquoi les serveurs, les bases de données et les journaux stockent le temps ainsi et laissent les fuseaux horaires à l’affichage.

De nombreux systèmes comptent dans des unités plus petites : JavaScript et Java en millisecondes, certaines bases de données et certains outils de traçage en microsecondes, Go et les interfaces du noyau Linux souvent en nanosecondes. Le convertisseur les distingue par la longueur : un timestamp en secondes a 10 chiffres pour toute date entre 2001 et 2286, 13 en millisecondes, 16 en microsecondes et 19 en nanosecondes. Choisissez vous-même l’unité pour les dates éloignées d’aujourd’hui.

La date est affichée en UTC, dans le fuseau horaire de votre navigateur et dans un fuseau de votre choix, à partir de la base de fuseaux horaires de votre navigateur : l’heure d’été est donc appliquée telle qu’elle l’était à cette date. ISO 8601 est la forme pour les données et les API ; RFC 2822 est celle des en-têtes d’e-mail.

Exemple

1700000000 correspond au 14 novembre 2023 à 22:13:20 UTC : 2023-11-14T22:13:20Z en ISO 8601 et Tue, 14 Nov 2023 22:13:20 +0000 en RFC 2822. À New York, il était 17:13:20 le même jour, en Inde 03:43:20 le lendemain. Le même instant en millisecondes vaut 1700000000000.

Le temps Unix en code

L’heure epoch actuelle, et la conversion d’un epoch en date, dans les langages les plus courants sur un serveur :

epoch
# Bash (GNU date; macOS: date -r 1700000000)
date +%s
date +%s%3N          # milliseconds
date -d @1700000000

# Python
import time; int(time.time())
from datetime import datetime, timezone; datetime.fromtimestamp(1700000000, timezone.utc)

// JavaScript
Math.floor(Date.now() / 1000)
new Date(1700000000 * 1000).toISOString()

<?php
time();
date('c', 1700000000);

-- SQL
SELECT UNIX_TIMESTAMP();                    -- MySQL, MariaDB
SELECT EXTRACT(EPOCH FROM now())::bigint;   -- PostgreSQL
SELECT unixepoch();                         -- SQLite 3.38+
SELECT to_timestamp(1700000000);            -- PostgreSQL: epoch to date

Questions

Qu’est-ce que le temps epoch ?

Le temps epoch, aussi appelé temps Unix, est le nombre de secondes écoulées depuis l’epoch Unix : le 1er janvier 1970, 00:00:00 UTC. Les dates antérieures sont négatives. Presque tous les systèmes d’exploitation et langages de programmation comptent le temps à partir de là, et un convertisseur d’epoch comme celui-ci transforme ce nombre en date lisible, et inversement.

Qu’est-ce que le bug de l’an 2038 ?

Les programmes qui gardent 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, le nombre repasse en négatif et se lit comme décembre 1901. Les systèmes 64 bits actuels utilisent un time_t de 64 bits et ne sont pas concernés, mais d’anciens appareils embarqués, des formats de fichiers et des colonnes de bases de données qui stockent des secondes sur 32 bits peuvent l’être.

Mon timestamp est-il en secondes ou en millisecondes ?

Comptez les chiffres. Une date actuelle en secondes a 10 chiffres (1700000000), en millisecondes 13 (1700000000000). Date.now() de JavaScript et System.currentTimeMillis() de Java donnent des millisecondes ; date +%s, time() de PHP et int(time.time()) de Python donnent des secondes. Si une date tombe en 1970 ou des milliers d’années plus tard, l’unité est mauvaise.

Les timestamps Unix ont-ils un fuseau horaire ?

Non. Un timestamp est le même nombre partout dans le monde au même instant ; il compte toujours depuis minuit UTC le 1er janvier 1970. Le fuseau horaire n’intervient que pour le transformer en date de calendrier et en heure d’horloge, ce qui explique que le convertisseur montre le même timestamp dans plusieurs fuseaux.

Le temps Unix compte-t-il les secondes intercalaires ?

Non. Le temps Unix considère chaque jour comme faisant exactement 86 400 secondes : les 27 secondes intercalaires ajoutées à l’UTC depuis 1972 (la dernière fin 2016) ne sont donc pas comptées. Pour les journaux et l’usage courant, cela n’a pas d’importance.