Qu'est-ce qu'un timestamp Unix ?
Un timestamp Unix (aussi appelé temps epoch ou temps POSIX) correspond au nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC — l'« epoch Unix » — sans compter les secondes intercalaires. C'est la méthode universelle qu'utilisent les ordinateurs pour stocker un instant sous la forme d'un seul nombre, indépendamment des fuseaux horaires. Ce calculateur convertit une valeur en millisecondes en timestamp Unix standard exprimé en secondes, et affiche également l'équivalent en minutes, heures et jours depuis l'epoch.
Comment l'utiliser
Saisissez une valeur de temps en millisecondes. Pour obtenir le timestamp Unix actuel (« epoch maintenant »), indiquez l'heure présente en millisecondes ; la valeur par défaut est fournie à titre d'exemple. Le calculateur divise par 1 000 et arrondit à l'inférieur pour donner des secondes entières, le format attendu par la quasi-totalité des API, bases de données et langages de programmation.
La formule expliquée
La conversion de base s'écrit $$\text{Epoch} = \left\lfloor \dfrac{\text{Time (ms)}}{1000} \right\rfloor$$. Les millisecondes offrent une précision au millième de seconde, mais le timestamp Unix classique se mesure en secondes entières : on applique donc la fonction floor (on supprime la partie décimale). À partir de là, diviser l'epoch par 60, 3 600 et 86 400 donne respectivement les minutes, les heures et les jours.
$$\begin{gathered} \text{Epoch} = \left\lfloor \dfrac{\text{Time (ms)}}{1000} \right\rfloor \\[1.5em] \text{where}\quad \left\{ \begin{aligned} \text{Minutes} &= \left\lfloor \tfrac{\text{Epoch}}{60} \right\rfloor \\ \text{Hours} &= \left\lfloor \tfrac{\text{Epoch}}{3600} \right\rfloor \\ \text{Days} &= \left\lfloor \tfrac{\text{Epoch}}{86400} \right\rfloor \end{aligned} \right. \end{gathered}$$
Exemple concret
Supposons que l'heure actuelle soit 1 700 000 000 000 millisecondes. En divisant par 1 000, on obtient 1 700 000 000 secondes — c'est le timestamp Unix. En divisant 1 700 000 000 par 86 400 puis en arrondissant à l'inférieur, on obtient 19 675 jours depuis le 1er janvier 1970, ce qui correspond à la mi-novembre 2023.
$$\left\lfloor \frac{1\,700\,000\,000\,000}{1000} \right\rfloor = 1\,700\,000\,000$$
$$\left\lfloor \frac{1\,700\,000\,000}{86\,400} \right\rfloor = 19\,675$$
FAQ
Pourquoi des secondes et non des millisecondes ? Le standard Unix d'origine utilise les secondes. La fonction Date.now() de JavaScript renvoie des millisecondes, d'où la division fréquente par 1 000.
Gère-t-il les fuseaux horaires ? Non — le temps Unix est toujours en UTC. Le même instant a le même timestamp partout sur Terre.
Qu'est-ce que le problème de l'an 2038 ? Les systèmes qui stockent le timestamp dans un entier signé 32 bits subiront un dépassement de capacité le 19 janvier 2038. Les systèmes modernes en 64 bits évitent ce problème.