Qu'est-ce que le temps UNIX ?
Le temps UNIX (aussi appelé timestamp UNIX ou temps POSIX) correspond au nombre de secondes écoulées depuis l'epoch UNIX, soit le 1970-01-01 00:00:00 UTC. C'est une manière universelle et indépendante de tout langage de représenter un instant précis sous la forme d'un seul entier. On l'utilise partout en informatique : journaux d'événements, bases de données, API et programmation. Aucune seconde intercalaire n'est prise en compte : chaque journée est considérée comme durant exactement 86 400 secondes.
Comment utiliser ce convertisseur
Saisissez la date du calendrier (année, mois, jour) ainsi que l'heure (heures, minutes, secondes) telles qu'elles s'affichent sur une horloge locale. Réglez ensuite le champ « Décalage par rapport à UTC » sur le décalage horaire de cette heure locale, exprimé en heures. Par exemple, le Japon est à +9, l'Inde à +5,5 et l'heure normale du Pacifique (États-Unis) à -8. Le décalage par défaut est +9 (heure du Japon). Laissez les champs heures, minutes et secondes vides pour les considérer comme nuls.
La formule expliquée
La date est d'abord convertie en nombre de jours grâce à l'algorithme « days-from-civil » (de Howard Hinnant), qui compte correctement les jours depuis l'epoch pour n'importe quelle date du calendrier grégorien, y compris les années bissextiles et les dates antérieures à 1970. Ce nombre de jours est multiplié par 86 400, puis on y ajoute les heures, les minutes et les secondes pour obtenir le nombre de secondes écoulées depuis le 1970-01-01 00:00:00 en heure locale. Enfin, on soustrait le décalage UTC (en heures × 3600) afin de ramener le résultat en UTC.
$$\begin{gathered} t = 86400 \cdot D + 3600\,\text{Hour} + 60\,\text{Minute} + \text{Second} - 3600\,\text{UTC Offset} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} D &= \text{days from } 1970\text{-}01\text{-}01 \text{ to the chosen date} \\ \text{date} &= \left(\text{Year},\ \text{Month},\ \text{Day}\right) \end{aligned} \right. \end{gathered}$$
Exemple concret
Pour le 2025-06-15 00:00:00 avec un décalage de +9 : daysSinceEpoch = 20254, donc localSeconds = \(20254 \times 86400 = 1\,749\,945\,600\). En soustrayant \(9 \times 3600 = 32\,400\), on obtient un temps UNIX de 1 749 913 200, soit le 2025-06-14 15:00:00 UTC.
Foire aux questions
Pourquoi le timestamp est-il plus petit que prévu pour un décalage positif ? Parce qu'une heure locale en avance sur UTC correspond à un instant UTC plus précoce ; sa valeur UNIX est donc inférieure à celle de la même heure d'horloge lue comme étant en UTC.
Le convertisseur gère-t-il les dates antérieures à 1970 ? Oui : le résultat est simplement négatif. Le 1969-12-31 23:59:59 UTC vaut -1.
Les secondes intercalaires sont-elles incluses ? Non. Le calcul suit la définition standard POSIX, selon laquelle chaque journée dure exactement 86 400 secondes.