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.
Comment ça marche
- 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.
- Convertir un timestamp en date : collez un timestamp Unix (secondes ou millisecondes) pour le reconvertir en date et heure lisibles.
- 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
- Conversion bidirectionnelle : date/heure → timestamp Unix et timestamp Unix → date/heure.
- Secondes et millisecondes : prend en charge le temps Unix en secondes (10 chiffres) comme en millisecondes (13 chiffres).
- Gestion des fuseaux : affiche l'heure dans votre fuseau local et en UTC pour une comparaison sans ambiguïté.
- Bouton heure actuelle : obtenez instantanément le timestamp du moment présent.
- Affichage relatif : indique depuis combien de temps ou dans combien de temps (par ex. « il y a 3 jours »).
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
- Secondes Unix (10 chiffres).
1747143000. Letime_tPOSIX classique. Utilisé par PostgreSQLEXTRACT(epoch FROM ...), MySQLUNIX_TIMESTAMP(), les TTL Redis, les revendicationsiat/expJWT (selon RFC 7519),git log, et la plupart des utilitaires Unix. Sera à 11 chiffres après novembre 2286. - Millisecondes Unix (13 chiffres).
1747143000000.Date.now()de JavaScript,System.currentTimeMillis()de Java, Kafka, Elasticsearch, et la plupart des pipelines de logs modernes. Multiplié par 1000 le compteur de secondes. - Microsecondes Unix (16 chiffres) et nanosecondes (19 chiffres).
1747143000000000. Utilisé partime.time_ns()de Python,time.Now().UnixNano()de Go, les révisions MVCC etcd et les systèmes de trading haute fréquence où la résolution milliseconde est trop grossière. - ISO 8601.
2026-05-13T14:30:00.000Zou2026-05-13T14:30:00+02:00. Triable en tant que chaîne, sans ambiguïté de fuseau horaire, accepté par pratiquement toutes les API modernes. Le suffixeZsignifie «temps Zulu», un désignateur OTAN pour UTC. - RFC 3339. Un profil plus strict d'ISO 8601 utilisé par JSON Schema, OpenAPI, et la plupart des API REST. Exige un désignateur de fuseau horaire et interdit certaines fonctionnalités ISO 8601 comme les dates de semaine et les dates ordinales.
- RFC 2822 / RFC 5322.
Tue, 13 May 2026 14:30:00 +0000. Le format de l'en-tête emailDate:. Toujours omniprésent car SMTP s'exécute partout. - Date sérielle Excel. Jours fractionnaires depuis 1900-01-01 (ou 1904 sur Excel Mac classique). 2026-05-13 14:30 est approximativement
46150.6042. Excel traite tristement célèbrement 1900 comme année bissextile (elle ne l'est pas) pour compatibilité Lotus 1-2-3.
Quand cet outil gagne son loyer
- Débogage JWT. Le token a
"exp": 1747143000et vous devez savoir s'il est expiré. Collez, voyez la date humaine. - Forensique de logs. Une ligne dit
timestamp=1747143012345, vous devez corréler avec l'heure murale d'un autre outil. 13 chiffres, donc millisecondes. - Requêtes base de données. Vous voulez trouver les lignes après une date spécifique.
WHERE created_at > 1747143000nécessite la valeur en secondes; copiez-la depuis l'outil. - Fixtures de tests. Coder en dur «hier» dans un test, vous générez le timestamp maintenant et le collez dans le spec.
- Cron / tâches planifiées. Vérifiez la valeur en secondes à laquelle un planificateur se déclenchera, surtout à travers les transitions DST.
- Rejeu d'événements. Les offsets Kafka et les index Elasticsearch utilisent souvent des timestamps ms; convertissez en date pour inspecter une fenêtre de rejeu spécifique.
- Invalidation de cache. Un en-tête
ExpiresouIf-Modified-Sinceau format RFC 2822, générez le bon format wire pour le test.
Erreurs qui coûtent des heures aux équipes
- Mélanger secondes et millisecondes. Passer une valeur à 10 chiffres à une fonction attendant des millisecondes retourne une date en 1970, décalée d'un facteur 1000. La règle 10-vs-13-chiffres est le test le plus rapide, les valeurs modernes en secondes ont 10 chiffres jusqu'en 2286, en millisecondes 13 chiffres.
- Stocker l'heure locale. Stockez toujours en UTC; convertissez en local au moment de l'affichage. Stocker
"2026-05-13 14:30:00"sans fuseau horaire casse au moment où un serveur, utilisateur, ou saut DST change le décalage local. - Oublier les transitions DST. 2:30 du matin arrive deux fois durant le passage à l'heure d'hiver. Du code naïf qui fait
start + (24 * 3600)pour signifier «demain» sera décalé d'une heure deux fois par an. Utilisez une vraie bibliothèque de dates (luxon,date-fns-tz,zoneinfoPython) qui connaît la base de données IANA tz. - Supposer que le temps POSIX prend en compte les secondes intercalaires. Ce n'est pas le cas.
2016-12-31 23:59:60a existé dans la vraie vie (la 27e seconde intercalaire) mais letime_tPOSIX saute de 23:59:59 à 00:00:00 sans aucune conscience de la seconde supplémentaire. TAI (temps atomique international) compte les secondes intercalaires, le temps POSIX est décalé d'UTC de zéro seconde. - Stocker time_t dans des colonnes INT(4). Les anciens schémas MySQL utilisent fréquemment
INTqui fait 4 octets / signé 32 bits / boucle en 2038. Migrez versBIGINTouTIMESTAMP. Le typeTIMESTAMPdes fournisseurs MySQL hébergés fait aussi 4 octets par défaut, vérifiez la doc. - Parser ISO 8601 avec regex. Les implémentations partielles abandonnent silencieusement le fuseau horaire. Utilisez le parseur de la plateforme:
new Date(s)en JavaScript,datetime.fromisoformat(s)en Python ≥ 3.11,Instant.parse(s)en Java. - Excel convertit automatiquement les timestamps. Coller
1747143012345dans Excel sans le préfixer par'(une apostrophe littérale) fait qu'Excel le lit comme un nombre, parfois en le convertissant en notation scientifique. Soit formatez la colonne en Texte d'abord, soit collez avec le préfixe apostrophe.
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é.