Qu'est-ce que le temps epoch (temps Unix) ?
Le temps epoch, aussi appelé temps Unix ou timestamp Unix, est le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC, un instant appelé l'epoch Unix. Par exemple, 1700000000 correspond au 14 novembre 2023 à 22:13:20 UTC.
Les ordinateurs stockent le temps ainsi parce qu'un nombre unique est facile à comparer, à trier et à échanger entre systèmes, et qu'il désigne le même instant partout dans le monde. Les fuseaux horaires n'interviennent qu'au moment de le transformer en date lisible. Le temps Unix ignore les secondes intercalaires : chaque jour compte exactement 86 400 secondes.

Secondes, millisecondes, microsecondes ou nanosecondes ?
Les timestamps existent en plusieurs précisions. Le convertisseur détecte l'unité d'après le nombre de chiffres, et vous pouvez la forcer avec le menu des unités :
Le timestamp Unix classique, utilisé par Linux, PHP, time.time() en Python (sous forme de nombre décimal), les claims exp des JWT et la plupart des API. Exemple : 1700000000.
Utilisées par JavaScript (Date.now()), Java et de nombreux journaux et bases de données. Exemple : 1700000000000.
Utilisées par UnixMicro() en Go et par de nombreux journaux et traces haute résolution. Exemple : 1700000000000000.
Utilisées par UnixNano() en Go, par InfluxDB et par les systèmes de supervision. Exemple : 1700000000000000000.
Advertisement
Comment convertir un timestamp Unix en date
Saisissez-le dans l'onglet Timestamp en date. Les virgules et les espaces servant de séparateurs sont ignorés, une partie décimale s'écrit avec un point (comme 1700000000.5), et les valeurs négatives donnent des dates antérieures à 1970.
Le badge indique si la valeur a été lue en secondes, millisecondes, microsecondes ou nanosecondes. Choisissez l'unité vous-même si la détection se trompe.
Vous obtenez la date en UTC et dans votre fuseau horaire, aux formats ISO 8601 et RFC 2822, le temps écoulé depuis, et le même instant dans les quatre unités.
Choisissez n'importe quel fuseau dans la liste pour voir le même instant là-bas, par exemple pour savoir à quelle heure une entrée de journal s'est produite pour un collègue à l'étranger.
Comment convertir une date en timestamp Unix
Ouvrez l'onglet Date en timestamp, choisissez une date et une heure, puis le fuseau horaire auquel elles correspondent. Vous obtenez le temps epoch en secondes et en millisecondes, ainsi que la forme ISO 8601 en UTC.
Le même panneau affiche la première et la dernière seconde du jour, du mois et de l'année dans le fuseau choisi. C'est pratique pour des requêtes de base de données comme « toutes les commandes passées en octobre, heure de New York », où il faut les timestamps de début et de fin de la période.
Advertisement
Fuseaux horaires et heure d'été
Un timestamp Unix n'a pas de fuseau horaire : il compte toujours à partir de minuit UTC le 1er janvier 1970. Le même timestamp s'affiche simplement à des heures différentes selon le lieu, par exemple 22:13 à Londres et 03:43 le lendemain matin en Inde pour 1700000000.
C'est en convertissant une date en timestamp que les fuseaux horaires comptent. Certaines heures existent deux fois quand on recule les horloges, et d'autres n'existent pas quand on les avance. La nuit où les horloges américaines avancent, 02:30 n'existe pas à New York. Cet outil gère les deux cas comme Python : une heure inexistante est décalée vers l'avant de la durée du saut, et une heure qui se produit deux fois prend sa première occurrence.
Le problème de l'an 2038
Les systèmes plus anciens stockent le temps Unix dans un entier signé de 32 bits, dont le maximum est 2147483647 : le 19 janvier 2038 à 03:14:07 UTC. Une seconde plus tard, le nombre déborde vers une valeur négative et ces systèmes lisent la date comme le 13 décembre 1901.
La plupart des systèmes d'exploitation et des langages modernes utilisent un temps sur 64 bits et ne sont pas concernés, mais les appareils embarqués, les anciens formats de fichiers, une partie du code hérité et le type de colonne TIMESTAMP de MySQL (qui s'arrête le 2038-01-19 à 03:14:07 UTC) le sont encore. Le convertisseur affiche une alerte pour tout timestamp hors de la plage 32 bits, afin de repérer les valeurs qui pourraient faire planter d'anciens logiciels.
Advertisement
Obtenir le temps epoch actuel dans le code
Tous les langages et tous les shells savent lire et convertir le temps Unix :
Math.floor(Date.now() / 1000) // secondes
Date.now() // millisecondes
new Date(1700000000 * 1000).toISOString() // '2023-11-14T22:13:20.000Z'import time, datetime
int(time.time()) # secondes
datetime.datetime.fromtimestamp(1700000000, datetime.timezone.utc)
# 2023-11-14 22:13:20+00:00date +%s # secondes epoch actuelles
date -u -d @1700000000 # Linux (GNU date)
date -u -r 1700000000 # macOS (BSD date)-- PostgreSQL
SELECT extract(epoch FROM now());
SELECT to_timestamp(1700000000);
-- MySQL
SELECT UNIX_TIMESTAMP();
SELECT FROM_UNIXTIME(1700000000);time(); // PHP
date('c', 1700000000);
time.Now().Unix() // Go
Instant.now().getEpochSecond() // Java=(A1/86400)+DATE(1970,1,1) // secondes epoch en A1 vers une date UTC
=(B1-DATE(1970,1,1))*86400 // date UTC en B1 vers des secondes epochTimestamps Unix remarquables
0: 1er janvier 1970, 00:00:00 UTC, l'epoch Unix.1000000000: 9 septembre 2001, 01:46:40 UTC, le premier timestamp à 10 chiffres.1234567890: 13 février 2009, 23:31:30 UTC.1700000000: 14 novembre 2023, 22:13:20 UTC.1800000000: 15 janvier 2027, 08:00:00 UTC.2000000000: 18 mai 2033, 03:33:20 UTC.2147483647: 19 janvier 2038, 03:14:07 UTC, la limite des 32 bits.4294967295: 7 février 2106, 06:28:15 UTC, la limite des 32 bits non signés.
Advertisement
Autres outils pour développeurs
D'autres outils gratuits pour les développeurs et les administrateurs système, qui fonctionnent tous dans votre navigateur :
UUID v4 aléatoires, v7 ordonnés dans le temps et GUID, en masse.
Texte, images et fichiers vers et depuis Base64.
Lisez les dates de validité, les SAN et la clé d'un certificat.
Sous-réseaux IPv4, plages CIDR et nombre d'hôtes.