Qu'est-ce qu'un convertisseur de timestamp Unix ?
Un timestamp Unix (aussi appelé temps epoch ou « heure Unix ») correspond au nombre de secondes écoulées depuis le 1ᵉʳ janvier 1970 à 00:00:00 UTC, sans tenir compte des secondes intercalaires. Cet outil transforme ce simple nombre entier en une date et une heure UTC lisibles par un humain, jour de la semaine inclus.
Comment l'utiliser
Collez ou saisissez un timestamp Unix exprimé en secondes (par exemple 1700000000), puis validez. Le calculateur affiche l'année, le mois, le jour, l'heure, la minute et la seconde en UTC, ainsi que le jour de la semaine et le nombre brut de jours écoulés depuis l'epoch.
La formule expliquée
On commence par décomposer les secondes : jours = floor(ts / 86400), et le reste donne l'heure de la journée.
$$\text{Days} = \left\lfloor \frac{\text{Timestamp}}{86400} \right\rfloor, \qquad s = \text{Timestamp} \bmod 86400$$$$\text{where}\quad \left\{ \begin{aligned} \text{Hour} &= \left\lfloor \frac{s}{3600} \right\rfloor \\ \text{Minute} &= \left\lfloor \frac{s \bmod 3600}{60} \right\rfloor \\ \text{Second} &= s \bmod 60 \\ (\text{Y},\text{M},\text{D}) &= \text{civil}(\text{Days}) \end{aligned} \right.$$Le nombre de jours est ensuite converti en date civile grâce au célèbre algorithme inverse « days_from_civil » de Howard Hinnant. Celui-ci décale le début de l'année au mois de mars afin que le jour bissextile tombe en fin d'année, ce qui évite tout cas particulier. Le jour de la semaine s'obtient avec \((\text{jours} + 4) \bmod 7\), car le 1ᵉʳ janvier 1970 était un jeudi.
Exemple concret
Pour ts = 1 700 000 000 : \(\text{jours} = 19675\), \(\text{reste} = 72800\) secondes \(= 22{:}13{:}20\). L'algorithme de date civile fait correspondre le jour 19675 au 14/11/2023. Le résultat est donc le 14/11/2023 à 22:13:20 UTC.
FAQ
L'outil tient-il compte des fuseaux horaires ? Non : le résultat est toujours exprimé en UTC. Pour obtenir l'heure locale, ajoutez votre décalage UTC (en France métropolitaine, +1 h en hiver et +2 h en été).
Et les millisecondes ? Saisissez uniquement des secondes. Si votre timestamp est en millisecondes, divisez-le d'abord par 1000.
Pourquoi les secondes intercalaires ne sont-elles pas prises en compte ? Le temps Unix lui-même les ignore par définition ; ce convertisseur fait donc de même.