Glossary
Horodatage Unix
Secondes depuis l’époque Unix
By Buğra SözeriPublished Updated
Un horodatage Unix (ou temps POSIX, ou secondes depuis l’époque) est le nombre de secondes écoulées depuis le 1970-01-01 00:00:00 UTC, en ignorant les secondes intercalaires. En date du 2026-05-16, l’horodatage Unix est d’environ 1 779 000 000.
Pourquoi ce format domine l’informatique :
- C’est un seul entier. Pas de fuseau horaire, de calendrier, de locale ou d’ambiguïté DST intégrée.
- L’arithmétique de temps est triviale — soustrayez deux horodatages pour obtenir une durée en secondes.
- Triable comme des nombres. Les index de base de données et les requêtes de séries temporelles n’ont pas besoin de comparateurs sophistiqués.
- Compact dans le stockage et sur le réseau.
Trois variantes que vous rencontrerez :
- Secondes. L’original.
1700000000= 14 nov. 2023 22:13:20 UTC. - Millisecondes.
Date.now()de JavaScript retourne cela. Multipliez la valeur en secondes par 1000. - Microsecondes / nanosecondes. Télémétrie haute résolution, traces distribuées.
timestamptzde Postgres stocke des microsecondes.
Deux problèmes bien connus :
- Année 2038 (Y2K38). Un entier signé 32 bits de secondes déborde le 19 janvier 2038 à 03:14:07 UTC. Les systèmes modernes utilisent 64 bits (bon pour ~292 milliards d’années) ; les systèmes embarqués hérités peuvent ne pas le faire.
- Secondes intercalaires. UTC insère occasionnellement des secondes intercalaires pour rester synchronisé avec la rotation de la Terre. Le temps Unix les ignore — l’horodatage à l’instant de la seconde intercalaire est ambigu. La plupart des systèmes de production utilisent un étalement (Google, AWS) qui répartit la seconde intercalaire sur plusieurs heures.
Convertissez les horodatages Unix en dates lisibles (et vice versa) en les alimentant dans une bibliothèque de dates. La conversion en heure d’horloge murale nécessite toujours un choix de fuseau horaire — le même instant est « 15h à New York » et « minuit à Tokyo » selon la zone dans laquelle vous l’affichez. Voir notre convertisseur de fuseaux horaires.
Comment les systèmes d’exploitation migrent depuis time_t 32 bits : Linux a intégré time_t 64 bits comme ABI noyau standard en 2020 (noyau 5.6+) et glibc 2.32 (2020) l’a exposé à l’espace utilisateur. NetBSD a effectué la transition en 2012, OpenBSD en 2014. FreeBSD a suivi en 2024. Les surfaces restantes sont les systèmes embarqués fonctionnant avec des noyaux anciens épinglés, certains protocoles on-chain ayant codé en dur des horodatages 32 bits dans leur format de fil (l’en-tête de bloc de Bitcoin inclut un horodatage Unix 32 bits, problématique en ~2106 lors d’un débordement non signé), et les formats de fichiers hérités. Référence : POSIX.1-2017 §4.16 — Secondes depuis l’époque.
Exemple concret
Convertir 1700000000 en une date UTC lisible. Divisez et prenez modulo depuis les secondes : 1 700 000 000 / 86400 = 19 675,93 jours depuis le 1970-01-01. Le jour 19 675 est le 2023-11-14 (calcul calendaire). Le 0,93 fractionnaire d’un jour × 86 400 = 80 000 secondes = 22:13:20. Donc 1700000000 = 2023-11-14T22:13:20Z. Vérifiez en JavaScript : new Date(1700000000 * 1000).toISOString() → "2023-11-14T22:13:20.000Z". Pour l’afficher à Tokyo (UTC+9) : ajoutez 9 heures = 2023-11-15T07:13:20+09:00. Le même instant, une horloge murale différente. Le bug classique : stocker new Date().getTime() (millisecondes) dans une colonne que le reste de la base de code traite comme des secondes — chaque horodatage finit par afficher l’année 55 000+ lors de l’affichage.
Quand et pourquoi cela est important
Chaque fois que deux systèmes échangent des données temporelles — frontend vers backend, base de données vers pipeline ETL, microservice vers microservice — les horodatages Unix sont la seule représentation qui ne comporte pas de fuseau horaire, de locale, de calendrier ou d’ambiguïté DST. Stockez les horodatages en secondes ou millisecondes Unix dans une colonne 64 bits, formatez en ISO-8601 avec fuseau horaire explicite uniquement à la limite pour l’affichage humain. L’habitude défensive : dans chaque colonne ou champ d’API portant du temps, encodez l’unité (created_at_ms, expires_at_unix_seconds) pour qu’un relecteur de code ne puisse pas confondre l’ordre de grandeur. Référence : RFC 3339 — Date et heure sur Internet.
Essayer le calculateur
Convertissez n’importe quel horodatage Unix en une date lisible dans votre fuseau horaire local ou UTC.
Ouvrir le convertisseur d’horodatage Unix →Frequently asked questions
- Qu’est-ce qu’un horodatage Unix ?
- Un horodatage Unix est un entier comptant les secondes écoulées depuis le 1970-01-01 00:00:00 UTC (l’époque Unix). C’est la façon standard dont les ordinateurs stockent et échangent des instants dans le temps, indépendamment des fuseaux horaires ou des systèmes calendaires.
- Comment un horodatage Unix est-il utilisé en pratique ?
- Les claims d’expiration JWT (exp), les en-têtes de cache HTTP (Last-Modified), les temps de modification de système de fichiers et les journaux d’événements de base de données utilisent tous des horodatages Unix. Comparer deux horodatages pour obtenir une durée est juste une soustraction ; aucun calcul calendaire n’est nécessaire.
- Quelle est la différence entre un horodatage Unix et une chaîne datetime ISO 8601 ?
- Un horodatage Unix est un seul entier (secondes depuis l’époque), compact et trivial à comparer arithmétiquement. Une chaîne ISO 8601 (p. ex. 2026-06-01T12:00:00Z) est lisible par les humains et auto-descriptive mais nécessite une analyse et une gestion du fuseau horaire. Les horodatages sont préférés pour le stockage ; les chaînes ISO pour l’affichage.
Related
Published May 16, 2026 · Last reviewed May 31, 2026