Aller au contenu

Convertir un timestamp Unix et une date locale

Transformez des secondes depuis l’époque Unix en date et heure, ou saisissez une date locale pour obtenir son timestamp. Les conversions utilisent le fuseau horaire du navigateur.

Fonctionne localement dans votre navigateur
Convertisseur d'horodatage Unix
Horodatage Unix actuel
Heure locale du navigateur

Horodatage en date et heure

Horodatage Unix
Heure locale du navigateur

Date et heure en horodatage

Heure locale du navigateur
Horodatage Unix

Référence de conversion d'horodatage Unix

Un horodatage Unix compte les secondes écoulées à partir du 01/01/1970 à 00:00:00 UTC. Cette page interprète la date et l'heure saisies dans le fuseau horaire local du navigateur.

Stockez les horodatages au format UTC. Appliquez un fuseau horaire IANA nommé, y compris les règles d'heure d'été, uniquement lors de l'affichage d'une valeur à un utilisateur.

Exemples d'horodatage Unix par environnement
EnvironnementHorodatage actuelConvertir l'horodatage en date et heure UTC
JavaScriptMath.floor(Date.now() / 1000)new Date(timestamp * 1000).toISOString()
Pythonint(time.time())datetime.fromtimestamp(timestamp, timezone.utc)
PHPtime()(new DateTimeImmutable("@$timestamp"))->setTimezone(new DateTimeZone("UTC"))
JavaInstant.now().getEpochSecond()Instant.ofEpochSecond(timestamp)
Gotime.Now().Unix()time.Unix(timestamp, 0).UTC()
RubyTime.now.to_iTime.at(timestamp).utc
PostgreSQLSELECT EXTRACT(EPOCH FROM NOW())::bigint;SELECT TO_TIMESTAMP(timestamp) AT TIME ZONE 'UTC';
MySQLSELECT UNIX_TIMESTAMP();SELECT FROM_UNIXTIME(timestamp);

Comment convertir un timestamp Unix

Cette page convertit des secondes depuis l'époque Unix en date et heure de votre fuseau horaire, et reconvertit une date locale en horodatage. Une horloge en direct affiche la valeur courante et peut être arrêtée pour figer une lecture.

Toutes les conversions utilisent le fuseau horaire annoncé par le navigateur : le résultat correspond à l'horloge de votre machine, pas à UTC. Le calcul se fait dans la page : rien de ce que vous saisissez n'est envoyé à un serveur.

  1. Lisez l'horodatage actuel sur l'horloge en direct ou cliquez sur Arrêter pour le figer.
  2. Collez un horodatage dans le champ « Horodatage Unix » et cliquez sur Convertir en date pour obtenir la date et l'heure locales.
  3. Saisissez une date locale au format YYYY-MM-DD HH:mm:ss puis cliquez sur Convertir en horodatage pour obtenir les secondes.
  4. Cliquez sur Actualiser pour relancer l'horloge, puis copiez la valeur dans votre requête, votre journal ou votre script.
  5. Si la valeur compte 13 chiffres, elle est probablement en millisecondes : divisez par 1000 avant de la convertir.

L'heure Unix en détail

Le fonctionnement réel de l'époque

L'heure Unix compte les secondes écoulées depuis 1970-01-01T00:00:00 UTC et ignore les secondes intercalaires : c'est un entier simple, pas une structure de calendrier. Elle est toujours définie en UTC — la même valeur affichée dans deux fuseaux donne deux horloges différentes pour un seul instant.

Les secondes intercalaires n'étant pas comptées, l'heure Unix n'est pas une mesure exacte des secondes physiques, mais elle est assez cohérente pour servir de format d'échange par défaut à tous les systèmes, bases de données et langages. D'où les noms epoch time et POSIX time.

Secondes, millisecondes et microsecondes

La valeur classique est en secondes et compte dix chiffres entre 2001 et 2286. JavaScript et Java utilisent les millisecondes, soit treize chiffres, et certains systèmes stockent des microsecondes ou des nanosecondes, soit seize ou dix-neuf chiffres. Une valeur qui semble appartenir à l'an 50000 est presque toujours un nombre de millisecondes lu comme des secondes.

Avant d'envoyer un horodatage à une API, vérifiez l'unité dans sa documentation et surveillez l'erreur classique : le client envoie des millisecondes, le serveur stocke des secondes. Le symptôme visible est une date située des décennies dans le futur.

Fuseaux horaires, changement d'heure et problème de 2038

Un horodatage n'a pas de fuseau horaire, une date en a un. Deux serveurs qui écrivent minuit dans leur heure locale produisent deux horodatages différents : stockez l'instant et ne convertissez qu'à l'affichage. Le changement d'heure rend la conversion inverse ambiguë : une heure locale peut exister deux fois (ici, le premier décalage est retenu) ou ne pas exister du tout (ici, elle est refusée).

Les systèmes qui stockent l'heure Unix dans un entier signé de 32 bits débordent en janvier 2038, quand le compteur dépasse 2 147 483 647. Les plateformes 64 bits ne sont pas concernées, mais les systèmes embarqués et les anciens formats à champs 32 bits méritent une vérification.

Questions sur l'heure Unix

Pourquoi l'heure convertie est-elle décalée de quelques heures ?

La conversion utilise le fuseau horaire local du navigateur, alors que votre serveur, votre journal ou votre base de données écrit probablement en UTC. Les deux montrent le même instant ; seul le décalage diffère. Comparez les horodatages plutôt que les horloges.

Pourquoi mon horodatage compte-t-il treize chiffres ?

Parce qu'il est en millisecondes : JavaScript et Java utilisent cette unité nativement. Cette page attend des secondes, divisez donc par 1000 avant de convertir ; sinon la valeur est lue comme une année très lointaine.

Comment obtenir l'horodatage actuel en code ?

En JavaScript, Math.floor(Date.now() / 1000) ; en PHP, time() ; en Python, int(time.time()) ; en SQL, la fonction de votre moteur (UNIX_TIMESTAMP() pour MySQL, strftime('%s','now') pour SQLite ou PostgreSQL).

Qu'est-ce que le problème de 2038 ?

Les systèmes qui stockent l'heure Unix dans un entier signé de 32 bits débordent le 2038-01-19 à 03:14:08 UTC, quand le compteur dépasse 2 147 483 647. Les plateformes 64 bits ne sont pas concernées, mais les systèmes embarqués et les formats à champs 32 bits le sont.

L'heure Unix compte-t-elle les secondes intercalaires ?

Non. Elle compte 86 400 secondes par jour et ignore les secondes intercalaires ajoutées à UTC de temps à autre : ce n'est pas un décompte exact des secondes physiques, mais c'est le format d'échange standard entre systèmes.

Quand préférer une date ISO 8601 ?

Quand la valeur doit rester lisible ou transporter son décalage, par exemple dans un JSON ou un journal : 2023-11-15T06:13:20+08:00 ne laisse aucune ambiguïté. Pour les calculs, les comparaisons et le stockage, l'horodatage est plus simple.

Outils récents :