Informatique
Convertisseur de timestamp Unix (epoch) en date et inversement
Colle un timestamp et lis aussitôt la date en UTC et dans ton heure locale, ou saisis une date et obtiens les secondes depuis l'epoch. L'unité se déduit du nombre de chiffres.
Ce qu'est le temps Unix
Le temps Unix compte les secondes écoulées depuis minuit le 1er janvier 1970 UTC, l'epoch. C'est ainsi que presque tous les systèmes d'exploitation, bases de données et protocoles stockent un instant : un seul nombre, indépendant du fuseau horaire et de l'heure d'été.
Le nombre n'indique pas son unité. Dix chiffres sont des secondes, treize des millisecondes comme en JavaScript et Java, seize des microsecondes et dix-neuf des nanosecondes. Pour les dates entre 1973 et 2286, le nombre de chiffres suffit, et c'est ce que fait le mode automatique.
Le fuseau n'intervient que lorsqu'on écrit la date pour un humain : le même timestamp est minuit à Londres et une heure à Paris. C'est pourquoi le résultat montre à la fois l'UTC et l'heure locale de ton appareil.
Erreurs fréquentes
- Lire des millisecondes comme des secondes : un timestamp à treize chiffres lu en secondes tombe des dizaines de milliers d'années dans le futur.
- Oublier le fuseau : une date écrite sans lui peut être lue en UTC par un programme et en heure locale par un autre.
- Stocker les secondes dans un entier 32 bits signé : le 19 janvier 2038 à 03:14:07 UTC, la valeur déborde et devient négative.
Questions fréquentes
Le temps Unix compte-t-il les secondes intercalaires ?
Non. Chaque jour dure exactement 86 400 secondes ; quand une seconde intercalaire est ajoutée, les systèmes la répètent ou l'étalent. Le temps Unix n'est donc pas un compte exact des secondes physiques écoulées.
Qu'est-ce que le problème de l'an 2038 ?
Les systèmes qui stockent les secondes dans un entier 32 bits signé vont au plus jusqu'à 2 147 483 647, soit le 19 janvier 2038. La seconde suivante devient un nombre négatif, qui correspond à 1901.
Comment obtenir le timestamp actuel dans un programme ?
En JavaScript, Date.now() donne des millisecondes, en Python time.time() des secondes avec décimales, dans un terminal Linux date +%s des secondes entières. Le bouton Maintenant fait de même ici.
Comment fonctionne ce calcul
Date UTC = epoch (1970-01-01 00:00:00 UTC) + timestamp ÷ unité. L'unité automatique est : secondes sous 10^11, millisecondes sous 10^14, microsecondes sous 10^17, sinon nanosecondes. D'une date locale, on retire le décalage du fuseau en vigueur à cette date, heure d'été comprise. La semaine ISO est celle qui contient le jeudi : la semaine 1 contient le premier jeudi de l'année.
Calculs liés
Générateur de hash
MD5, SHA-1, SHA-256, SHA-384 et SHA-512 d'un texte ou d'octets, avec vérification d'un hash.
Robustesse d'un mot de passe
Entropie en bits et temps pour le deviner, avec les motifs faibles repérés. Rien ne quitte le navigateur.
Convertisseur Base64
Du texte, d'un entier, de l'hexadécimal ou du binaire vers Base64 et retour, groupes de 6 bits expliqués.
Convertisseur de couleurs
Du HEX au RVB, TSL, TSV et CMJN et retour, avec le contraste WCAG du texte blanc et noir.