Dev Tools

Convertisseur Timestamp Unix

Convertissez un timestamp Unix en date lisible, ou une date en timestamp. Affichage en temps réel.

Timestamp actuel (secondes)

1778705223

Timestamp → Date

Date → Timestamp

Besoin de calculer des permissions ?

Calculez les droits Unix chmod en notation octale et symbolique.

Calculer chmod

Questions fréquentes

Qu'est-ce qu'un timestamp Unix ?

Un timestamp Unix (ou POSIX time) est le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC, aussi appelé l'epoch Unix.

Il s'agit d'un standard universel pour représenter des dates et heures en informatique, indépendamment des fuseaux horaires et des calendriers.

Quelle est la différence entre timestamp en secondes et en millisecondes ?

Le timestamp Unix classique est en secondes. En JavaScript, Date.now() retourne des millisecondes, ce qui donne un nombre environ 1000 fois plus grand.

En Python, time.time() retourne des secondes (float). Il est important de vérifier l'unité utilisée pour éviter des erreurs de calcul sur les dates.

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

Le bug de l'an 2038 (Y2K38) concerne les systèmes qui stockent le timestamp Unix en entier signé 32 bits. Le 19 janvier 2038 à 03:14:07 UTC, la valeur dépassera 2 147 483 647 et reviendra à un nombre négatif, causant des erreurs de date.

Les systèmes 64 bits ne sont pas affectés : ils peuvent stocker des dates jusqu'en l'an 292 milliards.

Comment obtenir le timestamp actuel en différents langages ?

JavaScript : Date.now() (ms) ou Math.floor(Date.now()/1000) (s). Python : import time; time.time(). PHP : time(). SQL (MySQL) : UNIX_TIMESTAMP(). SQL (PostgreSQL) : EXTRACT(EPOCH FROM NOW()).

Bash : date +%s. Go : time.Now().Unix().

Le timestamp Unix prend-il en compte les fuseaux horaires ?

Non, le timestamp Unix est toujours en UTC. Il représente un instant absolu dans le temps. La conversion en heure locale dépend du fuseau horaire de l'utilisateur ou du serveur.

C'est pourquoi il est recommandé de stocker les dates en timestamp UTC dans les bases de données et de n'appliquer la conversion en heure locale qu'à l'affichage.

Timestamp converter unix : comprendre et manipuler le temps en informatique

Qu'est-ce que l'epoch Unix et le timestamp ?

Le timestamp Unix (aussi appelé POSIX time ou epoch time) est le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC. Cette date de référence, appelée epoch Unix, a été choisie lors de la conception du système d'exploitation Unix dans les laboratoires Bell d'AT&T au début des années 1970.

L'avantage fondamental du timestamp Unix est sa neutralité temporelle : il représente un instant absolu, indépendant des fuseaux horaires, des changements d'heure saisonniers et des calendriers locaux. Deux serveurs situés dans des fuseaux horaires différents qui enregistrent le même événement obtiendront exactement le même timestamp. La conversion en heure locale n'intervient qu'au moment de l'affichage.

Timestamp Unix = nombre de secondes depuis le 1er janvier 1970 00:00:00 UTC

Le problème Y2K38 : la bombe à retardement des systèmes 32 bits

Les systèmes qui stockent le timestamp Unix en entier signé 32 bits peuvent représenter des valeurs comprises entre -2 147 483 648 et 2 147 483 647. La valeur maximale correspond au 19 janvier 2038 à 03:14:07 UTC. Une seconde après, le compteur revient à une valeur négative, interprétée comme une date en décembre 1901.

2 147 483 647

Valeur maximale d'un entier signé 32 bits, atteinte le 19 janvier 2038 à 03:14:07 UTC

Ce problème, connu sous le nom de bug Y2K38 (Year 2038 Problem), est l'équivalent du bug de l'an 2000 pour les systèmes Unix. Les systèmes modernes 64 bits ne sont pas affectés : un entier signé 64 bits peut stocker des dates jusqu'à l'an 292 milliards, bien au-delà de la durée de vie de l'univers.

Capacité de stockage temporel par type d'entier

int32 signé
1901 - 2038
uint32 non signé
1970 - 2106
int64 signé
±292 milliards d'années

Source : IEEE Std 1003.1 (POSIX)

Secondes vs millisecondes : attention aux pièges

Le timestamp Unix classique est exprimé en secondes. Cependant, de nombreux langages et APIs utilisent les millisecondes, ce qui multiplie la valeur par 1 000. Ne pas identifier correctement l'unité est l'une des erreurs les plus courantes en développement.

Secondes (Unix classique)

1 711 065 600

Python time.time(), PHP time(), SQL UNIX_TIMESTAMP()

Millisecondes (JavaScript)

1 711 065 600 000

JS Date.now(), Java System.currentTimeMillis()

Notre convertisseur détecte automatiquement l'unité : si la valeur dépasse 10¹², elle est interprétée comme des millisecondes. En cas de doute, un timestamp en secondes pour une date récente comporte 10 chiffres (ex : 1711065600), tandis qu'un timestamp en millisecondes en comporte 13 (ex : 1711065600000).

Exemple illustré : stocker et afficher des dates correctement

Prenons le cas d'une application web qui enregistre des événements utilisateur et les affiche en heure locale.

1
Stocker en UTC

Le serveur enregistre le timestamp Unix (secondes)

1711065600
2
Transmettre via API

Le JSON contient le timestamp brut, sans fuseau

{ "created_at": 1711065600 }
3
Afficher en local

Le navigateur convertit selon le fuseau de l'utilisateur

22 mars 2024 à 01:00 (CET)

Bonne pratique

Stockez toujours vos dates en timestamp UTC dans la base de données. N'appliquez la conversion en heure locale qu'au moment de l'affichage côté client. Cela évite les ambiguïtés liées aux changements d'heure et facilite les comparaisons entre dates. Pensez à utiliser un UUID v7 qui intègre un timestamp dans l'identifiant.

Obtenir le timestamp dans différents langages

Chaque langage de programmation offre sa propre méthode pour obtenir le timestamp courant. Voici un récapitulatif des fonctions les plus utilisées :

  • JavaScript : Date.now() (millisecondes) ou Math.floor(Date.now()/1000) (secondes)
  • Python : import time; time.time() (secondes, float)
  • PHP : time() (secondes, entier)
  • Go : time.Now().Unix() (secondes)
  • Bash : date +%s (secondes)
  • SQL (PostgreSQL) : EXTRACT(EPOCH FROM NOW())

Fuseaux horaires et gestion de l'heure d'été

Le timestamp Unix est par définition en UTC. La complexité survient lors de la conversion en heure locale, car les règles de fuseaux horaires et de changement d'heure sont gérées par la base de données IANA tz (souvent appelée "Olson database"), mise à jour plusieurs fois par an. Un même timestamp peut correspondre à des heures différentes selon le fuseau : 1711065600 correspond au 22 mars 2024 à 00:00 UTC, mais au 21 mars 2024 à 19:00 à New York (UTC-5). Pour encoder correctement vos paramètres d'URL contenant des timestamps, utilisez notre encodeur/décodeur URL.

Attention aux leap seconds

Le timestamp Unix ne comptabilise pas les secondes intercalaires (leap seconds). Le système POSIX considère que chaque jour fait exactement 86 400 secondes. Les secondes intercalaires sont gérées par NTP (Network Time Protocol) au niveau du système d'exploitation, pas dans le timestamp lui-même.

Erreurs fréquentes à éviter

  • Confondre secondes et millisecondes. JavaScript utilise les millisecondes (Date.now() = 13 chiffres), tandis que la plupart des APIs Unix utilisent les secondes (10 chiffres). Diviser ou multiplier par 1 000 au mauvais endroit décale la date de plusieurs décennies.
  • Stocker des dates en format texte avec fuseau local. "2024-03-22 01:00:00" est ambigu si le fuseau n'est pas précisé. Stockez en UTC ou en timestamp Unix, et convertissez à l'affichage.
  • Ignorer le problème Y2K38 dans les systèmes embarqués. Les appareils IoT et systèmes embarqués 32 bits déployés aujourd'hui seront encore en service en 2038. Prévoyez un type 64 bits dès la conception.
  • Utiliser des timestamps négatifs sans vérification. Un timestamp négatif correspond à une date avant le 1er janvier 1970. Certains langages et systèmes ne les supportent pas correctement.
  • Comparer des timestamps de précisions différentes. Si un système utilise les secondes et un autre les millisecondes, la comparaison directe produira des résultats absurdes. Normalisez toujours la précision avant de comparer.

Sources et références

Dev & Tech

Sources : IEEE Std 1003.1 (POSIX) · IANA Time Zone Database · MDN Web Docs · Dernière mise à jour : avril 2026.