Générateur de timestamp Unix, gratuit

Choisissez une date et une heure pour générer un timestamp Unix, un timestamp en millisecondes et une chaîne ISO 8601.

Timestamp Unix (secondes)
Millisecondes
ISO 8601
Lisible (UTC)

Comment ça marche

  1. Convertir une date en timestamp : saisissez une date et une heure avec le sélecteur, puis cliquez sur Générer pour obtenir le timestamp Unix en secondes et en millisecondes.
  2. Convertir un timestamp en date : collez un timestamp Unix (secondes ou millisecondes) pour le reconvertir en date et heure lisibles.
  3. Obtenir le timestamp actuel : cliquez sur « Maintenant » pour récupérer instantanément le timestamp Unix du moment présent.

Pourquoi utiliser le générateur de timestamp Unix ?

Les timestamps Unix sont le langage universel du temps en informatique, un entier unique représentant les secondes écoulées depuis le 1er janvier 1970 (UTC). Ils alimentent bases de données, API, journaux, jetons d'authentification et planification d'événements. Convertir manuellement entre timestamps et dates lisibles implique des calculs de fuseaux horaires faciles à rater. Cet outil gère correctement la conversion dans les deux sens, fait gagner du temps et évite les bugs de fuseaux horaires.

Fonctionnalités

Questions fréquentes

Qu'est-ce qu'un timestamp Unix ?

Un timestamp Unix est le nombre de secondes écoulées depuis l'époque Unix, minuit UTC le 1er janvier 1970. C'est une représentation d'un instant indépendante des fuseaux, ce qui en fait le format privilégié pour stocker et comparer des instants dans les bases de données et les API.

Pourquoi JavaScript utilise-t-il les millisecondes ?

Date.now() et new Date().getTime() en JavaScript renvoient des millisecondes depuis l'époque (un nombre à 13 chiffres), tandis que les outils Unix et la plupart des bases de données utilisent les secondes (10 chiffres). Vérifiez si votre timestamp a 10 ou 13 chiffres pour savoir quel format vous avez.

Comment convertir un timestamp en heure locale ?

Collez le timestamp ; l'outil le convertit automatiquement au fuseau local de votre navigateur. L'affichage montre à la fois l'heure locale et l'UTC pour travailler entre fuseaux en toute confiance.

D'où vient le temps Unix

Le temps Unix a été défini par Ken Thompson et Dennis Ritchie dans Unix First Edition (novembre 1971). Initialement, le noyau comptait des 60èmes de seconde depuis le 1971-01-01 dans un champ 32 bits, qui débordait après 2 ans 9 mois. Avec Unix Sixth Edition (1975), le compteur passait à des secondes depuis 1970-01-01 00:00:00 UTC, l'époque que tout système de type Unix utilise encore aujourd'hui. Le choix était arbitraire, les ingénieurs voulaient une date ronde proche de leur époque de travail. POSIX.1 (1988) a codifié la définition comme standard officiel, et POSIX.1-2017 (IEEE Std 1003.1-2017), la version actuelle, définit toujours time_t comme le nombre de secondes depuis l'époque, avec la mise en garde que le temps POSIX fait semblant que les secondes intercalaires n'existent pas. ISO 8601 (1988, actuellement 2019) a standardisé le format lisible 2026-05-13T14:30:00Z, et RFC 3339 (juillet 2002) l'a restreint à un profil date-heure internet sans ambiguïté. Date.now() de JavaScript retourne des millisecondes depuis l'époque parce que la spec a été écrite en 1995, à une époque où la précision sub-seconde était déjà demandée; la plupart des bases de données et utilitaires Unix utilisent encore des secondes entières.

Le problème de l'an 2038 (et pourquoi c'est important maintenant)

Un time_t signé 32 bits peut représenter au maximum 2 147 483 647 secondes, qui arrivent à 03:14:07 UTC le mardi 19 janvier 2038. Une seconde plus tard, le compteur boucle à −2 147 483 648, ce que la plupart des logiciels interprètent comme 13 décembre 1901. C'est la même classe de bug que Y2K mais causée par la largeur d'entier, pas le format de date. La solution est d'utiliser un time_t 64 bits (qui pousse le débordement vers à peu près l'an 292 milliards). La plupart des systèmes Linux 64 bits utilisent déjà time_t 64 bits par défaut; Linux 5.6 (mars 2020) a rendu time_t 64 bits disponible aussi sur les architectures 32 bits. Le risque restant vit dans les systèmes embarqués, les anciens formats de fichiers binaires et les protocoles réseau 32 bits. Le protocole NTP boucle déjà en 2036 car il utilise un compteur non signé 32 bits depuis 1900, NTPv4 ajoute un numéro d'ère pour l'étendre. Si vous livrez des logiciels qui manipulent des dates, auditez votre stack avant 2038, surtout les colonnes SQL typées INT(11) ou le vieux code C avec des champs de temps long.

Les formats de timestamp que vous rencontrerez

Quand cet outil gagne son loyer

Erreurs qui coûtent des heures aux équipes

Plus de questions fréquentes

Pourquoi 1970-01-01 a-t-il été choisi comme époque?

Commodité. Les premières versions d'Unix dans les années 1970 voulaient une époque qui ne déborderait pas dans une durée de vie de travail raisonnable. 1970-01-01 était une date ronde proche de l'ère de développement, et un compteur de secondes 32 bits depuis là atteint confortablement 2038. Le choix est maintenant gravé dans POSIX.1-2017 §4.16 et est l'un des accords inter-plateformes les plus stables en logiciel. Il n'y a aucune signification inhérente à la date, aucun événement historique, aucun ancrage astronomique, juste un ancrage arbitraire sur lequel tout le monde s'est mis d'accord.

Quelle est la différence entre UTC, GMT, et le temps Zulu?

Pour les besoins logiciels, ils se réfèrent au même temps mural. UTC (Temps Universel Coordonné) est le standard moderne, défini par les horloges atomiques et le BIPM. GMT (Greenwich Mean Time) est l'ancien standard astronomique britannique qui était la référence mondiale de facto avant le chronométrage atomique. Temps Zulu est le désignateur OTAN/militaire pour UTC, écrit comme le suffixe Z en ISO 8601 (2026-05-13T14:30:00Z). UTC et GMT peuvent différer jusqu'à 0,9 seconde car UTC est piloté pour rester proche d'UT1 (temps solaire moyen) via les secondes intercalaires, mais aucune application qui n'utilise pas directement UT1 ne le remarquera.

Pourquoi 1970 est-il parfois affiché alors que j'attendais autre chose?

Deux causes courantes. D'abord, le timestamp est en millisecondes mais a été passé à une fonction attendant des secondes, ou vice-versa, donnant une date d'un facteur 1000 décalée. Ensuite, la valeur est 0 ou NaN, que la plupart des bibliothèques de dates rendent comme 1970-01-01T00:00:00Z. Inspectez la largeur entière brute: 10 chiffres c'est des secondes, 13 c'est des millisecondes, 16 c'est des microsecondes, 19 c'est des nanosecondes.

Cet outil gérera-t-il les timestamps négatifs pour les dates avant 1970?

Oui. new Date(-86400000) retourne 1969-12-31T00:00:00Z. La Date de JavaScript peut représenter tout moment de −271821-04-20 à +275760-09-13, soit à peu près ±100 millions de jours depuis l'époque. Au-delà de cette plage, l'API retourne Invalid Date. Pour les dates historiques, soyez aussi conscient de la transition julienne-grégorienne (1582 dans les pays catholiques, 1752 en Grande-Bretagne, dès 1923 en Grèce) où les dates calendaires ont sauté de 10 à 13 jours; les bibliothèques de dates varient sur la façon de gérer cela.

Mes données de timestamp sont-elles envoyées quelque part?

Non. Toute conversion s'exécute en JavaScript dans votre navigateur. La page n'envoie jamais aucune valeur que vous entrez. Ouvrez l'onglet Réseau dans DevTools et convertissez un timestamp, vous verrez zéro requête sortante pendant la conversion. Sûr pour les tokens avec des revendications de timestamp, les lignes de log internes, ou tout ce que vous ne colleriez pas dans un service hébergé.

Outils associés

Conversion d'horodatages Unix en ligne, gratuite Calculatrice de dates, gratuite Calcul de durée en ligne, gratuit Compte à rebours en ligne, gratuit