Convertisseur d'Horodatage
Convertir entre horodatages Unix et formats date-heure
Horodatage vers Date
Date vers Horodatage
Comparaison des Fuseaux Horaires Mondiaux
Exemples de Formats Courants
Qu'est-ce qu'un horodatage ?
Un horodatage (Timestamp) est une valeur numérique représentant un moment précis. L'horodatage Unix est le nombre de secondes écoulées depuis le 1er janvier 1970 00:00:00 UTC (appelé Époque Unix). C'est la façon standard de représenter le temps dans les systèmes informatiques, offrant une cohérence inter-plateformes et inter-fuseaux horaires. Les horodatages sont divisés en niveau secondes (10 chiffres) et niveau millisecondes (13 chiffres). Les horodatages en secondes sont couramment utilisés dans les systèmes Unix/Linux, tandis que le niveau millisecondes est courant en JavaScript et autres langages de programmation. Lors d’un usage partagé, entrées, hypothèses et résultat attendu doivent être clairs afin d’éviter les mauvaises interprétations.
Comment utiliser
Timestamp vers Date
- Entrez un timestamp Unix dans le volet de gauche
- Sélectionnez le fuseau horaire cible (par ex. heure de Pékin UTC+8)
- Cliquez sur le bouton Convertir pour afficher la date et l'heure converties
- Les résultats incluent : format standard, ISO 8601, format chinois, et plus
Date en Timestamp
- Sélectionnez la date et l'heure dans la carte de droite
- Sélectionnez le fuseau horaire source correspondant à cette date et heure
- Cliquez sur le bouton Convertir pour obtenir le timestamp Unix
- Les résultats affichent les timestamps en secondes et en millisecondes
Astuces sur les fuseaux horaires
- Vérifiez si la valeur source est en secondes ou en millisecondes ; mélanger des timestamps à 10 et 13 chiffres est une cause fréquente de dates incorrectes.
- Confirmez systématiquement le fuseau horaire cible lors de la conversion de dates au format lisible, en particulier pour les journaux, les tâches planifiées et les systèmes multi-régions.
Cas d’utilisation
Principe technique
Un horodatage Unix compte le temps écoulé depuis l'époque Unix, définie comme 1970-01-01T00:00:00Z, qui est le point zéro que le temps POSIX utilise pour étiqueter chaque instant postérieur. Le temps POSIX ignore délibérément les secondes intercalaires : chaque jour calendaire est traité comme exactement 86 400 secondes, de sorte que deux horodatages couvrant une insertion de seconde intercalaire seront décalés d'une seconde par rapport à un comptage atomique strict, mais l'avantage est que la conversion entre secondes d'époque et champs calendaires UTC reste un divmod propre par 86 400. Les deux formats rencontrés quotidiennement sont les secondes (10 chiffres aujourd'hui, par ex. 1717000000) et les millisecondes (13 chiffres, par ex. 1717000000000). Le Date.now() de JavaScript renvoie des millisecondes depuis l'époque et `new Date(ms)` attend des millisecondes, tandis que la commande Unix `date +%s`, le time.Unix de Go et la plupart des colonnes TIMESTAMP des bases de données utilisent des secondes. La détection par longueur est la méthode habituelle de désambiguïsation : une valeur à 10 chiffres tombe dans la plage 2001-2286 lue en secondes, et la même valeur lue en millisecondes serait dans 1970. L'affichage d'un horodatage nécessite un fuseau horaire. L'UTC s'écrit avec le suffixe `Z` ; les autres décalages utilisent `±HH:MM` (par ex. `+08:00` pour l'heure normale de Chine, `-05:00` pour l'heure normale de l'Est des États-Unis). L'ISO 8601 autorise plusieurs séparateurs optionnels tandis que le RFC 3339 est un profil plus strict qui les fige, c'est pourquoi les spécifications d'API exigent généralement le RFC 3339 avec un décalage explicite. Les systèmes hérités stockant les secondes d'époque dans un entier 32 bits signé débordent à la valeur positive maximale 2147483647, qui correspond au 2038-01-19T03:14:07Z (le problème Y2038) ; le stockage 64 bits repousse cette borne bien au-delà de toute pertinence humaine.
- L'époque Unix est fixée au 1970-01-01T00:00:00Z et le temps POSIX ignore les secondes intercalaires, chaque jour est donc traité comme exactement 86 400 secondes.
- JavaScript Date.now() renvoie des millisecondes ; `Math.floor(Date.now() / 1000)` convertit en horodatage de niveau seconde.
- Borne Y2038 : un horodatage 32 bits signé déborde à 2147483647 = 2038-01-19T03:14:07Z ; le stockage 64 bits évite ce problème.
- ISO 8601 vs RFC 3339 : le RFC 3339 est un profil plus strict de l'ISO 8601 qui exige un décalage explicite (`Z` ou `±HH:MM`) et est préféré pour les API et les journaux.
- La Date ECMAScript est limitée à ±100 000 000 jours à partir de l'époque (≈ ±273 785 ans), ce qui fait que `new Date(8.64e15)` et `new Date(-8.64e15)` sont les bornes absolues.
- Les claims JWT `exp`, `iat` et `nbf`, `Cache-Control: max-age` et le Cookie `Expires` utilisent tous des secondes Unix (RFC 7519, RFC 7234), donc ajoutez/soustrayez-les directement à `Math.floor(Date.now()/1000)`.
- Le fuseau horaire affecte la date-heure affichée mais pas la valeur de l'horodatage lui-même ; la même seconde d'époque s'affiche comme des heures différentes en UTC+8 et UTC-5.
Exemples
Convertir un timestamp Unix à 10 chiffres en date lisible
Entrée: 1781526600
UTC: 2026-06-15 12:30:00
Pékin (UTC+8): 2026-06-15 20:30:00
ISO 8601: 2026-06-15T12:30:00Z
POSIX: IEEE 1003.1 définit le temps Unix comme les secondes depuis 1970-01-01 00:00:00 UTC (l'Epoch)
ISO: ISO 8601 définit le format YYYY-MM-DDThh:mm:ssZ pour une représentation date/heure non ambiguëReconvertir une date en timestamp
Entrée: 2026-01-01 00:00:00 (UTC)
Secondes (10 chiffres): 1767225600
Millisecondes (13 chiffres): 1767225600000
Commande Unix: date -d @1767225600
Note : JavaScript Date.getTime() renvoie des millisecondes ; Python time.time() renvoie des secondes (float)
POSIX: Le type time_t est traditionnellement un entier signé 32 bits ou 64 bitsDistinguer secondes et millisecondes
1781526600 -> 10 chiffres, secondes -> 2026-06-15 12:30:00 UTC
1781526600000 -> 13 chiffres, millisecondes -> 2026-06-15 12:30:00.000 UTC
Bug courant : une valeur à 13 chiffres lue comme des secondes donnerait l'année ~74 000
Astuce : 10-11 chiffres = secondes (1970-2286), 13 chiffres = millisecondes (par défaut en JavaScript)Décoder le claim exp d'un JWT
Payload JWT: { "exp": 1798617600 }
Décodé: 2027-01-01 00:00:00 UTC
Now actuel: 1781526600
Valide: 17 091 000 secondes (~198 jours restants)
RFC: RFC 7519 section 2 définit NumericDate comme les secondes depuis l'EpochVérification de la limite Y2038
Timestamp signé 32 bits maximal: 2147483647
Décodé: 2038-01-19 03:14:07 UTC
Une seconde plus tard: 2147483648 -> dépassement sur les anciens systèmes 32 bits
Correctif : utiliser un time_t 64 bits (par défaut sur Linux/macOS modernes) ou stocker en chaîne ISO 8601
POSIX: Les systèmes en time_t 32 bits boucleront après 2038-01-19FAQ
Qu'est-ce qu'un timestamp Unix ?
Le nombre de secondes écoulées depuis le 01/01/1970 00:00:00 UTC, l'« epoch Unix ». JavaScript et de nombreuses API utilisent les millisecondes depuis la même epoch (timestamp Unix × 1000). La page accepte les deux et affiche la date correspondante en heure locale et en UTC.
Secondes vs millisecondes vs microsecondes vs nanosecondes ?
Différents systèmes utilisent différentes précisions. La fonction Unix `time()` renvoie des secondes. JavaScript Date.now() renvoie des millisecondes. Java Instant prend en charge les nanosecondes. La page détecte automatiquement par nombre de chiffres : 10 chiffres = secondes (sur 2001-2286), 13 = millisecondes, 16 = microsecondes, 19 = nanosecondes.
Pourquoi le 19 janvier 2038 est-il important ?
C'est le « problème de l'an 2038 » : les timestamps Unix signés sur 32 bits débordent à 03:14:07 UTC le 19/01/2038. Les systèmes utilisant encore un time_t 32 bits reviendront à 1901. Les systèmes 64 bits modernes ne sont pas affectés avant des milliards d'années ; les anciens systèmes embarqués ont besoin d'un correctif.
Comment les fuseaux horaires sont-ils gérés ?
Les timestamps Unix sont intrinsèquement en UTC. La page affiche votre heure locale, l'UTC, et permet de choisir n'importe quel fuseau IANA (Asia/Shanghai, America/New_York, Europe/London) pour des affichages supplémentaires. L'heure d'été est appliquée automatiquement selon le fuseau.
Pourquoi l'analyse de « YYYY-MM-DD » suppose-t-elle parfois UTC ?
Les dates ISO 8601 sans fuseau horaire sont ambiguës. Le constructeur Date de JavaScript traite les chaînes uniquement-date comme UTC et les chaînes date-heure comme locales — une source notoire de bugs de décalage d'un jour. La page est explicite sur le fuseau horaire appliqué.
La conversion est-elle effectuée localement ?
Oui. Les calculs sont JavaScript Date plus Intl.DateTimeFormat. Aucun timestamp n'est téléversé.
Puis-je générer un timestamp futur ?
Oui. Choisissez une date future et la page renvoie le timestamp correspondant. Utile pour définir des claims JWT exp, des dates de test pour cron, ou des fenêtres d'expiration de cache dans le code.