Web et encodage · 5 minutes de lecture
Convertisseur d'horodatage : heure sans incertitude
L'heure Unix est le nombre de secondes écoulées depuis le 1970-01-01T00:00:00 UTC — un seul entier que chaque système comprend et que presque tous les développeurs ont mal lu au moins une fois. Un convertisseur d'horodatage transforme cet entier en quelque chose qu'un humain peut vérifier et inverser, ce qui est généralement le moyen le plus rapide de répondre à la question par laquelle commence chaque enquête de journal : quand cela s'est-il réellement produit ?
Mis à jour
Secondes ou millisecondes : le bug qui n'arrête pas de se produire
Dix chiffres correspondent à des secondes ; treize correspond à des millisecondes. Si vous vous trompez, la date se situe en 1970 ou dans des milliers d’années – une erreur immédiatement reconnaissable une fois que vous l’avez vue, et c’est exactement pourquoi elle mérite d’être reconnue. Le `Date.now()` de JavaScript renvoie des millisecondes alors que la plupart des langages de serveur et des bases de données stockent les secondes. C'est donc à la limite entre un navigateur et un API que l'erreur est généralement commise.
1760000000 → 2025-10-09 09:33:20 UTC (seconds)
1760000000000 → 2025-10-09 09:33:20 UTC (milliseconds)
UTC est la vérité ; l'heure locale est un choix de présentation
Une valeur d'époque est sans ambiguïté car elle est UTC par définition. La confusion apparaît lorsque vous l'affichez : le même instant est une heure d'horloge murale différente dans chaque fuseau horaire, et un ticket d'assistance indiquant "c'est arrivé à 15 heures" n'est utile qu'avec un fuseau horaire associé. Stockez et transmettez l'époque ou ISO 8601 UTC, convertissez-la en heure locale pour l'afficher et incluez toujours la zone dans tout ce qu'un humain lit.
Où les horodatages apparaissent dans le travail réel
- Lignes de journal - le moyen le plus rapide consiste à convertir la colonne d'époque en dates lisibles avant de lire le sens.
- Réponses API — `created_at`, `expires_at` et en-têtes de cache, tous plus utiles une fois convertis.
- JWT réclamations — `exp` et `iat` sont des secondes d'époque, c'est pourquoi un contrôle d'expiration est une soustraction.
- Lignes de la base de données : comparer une époque stockée avec celle d'aujourd'hui est une opération arithmétique ; le comparer à « mardi dernier » nécessite une conversion.
Un horodatage sans fuseau horaire est un bug qui attend un lecteur. Les dates imprimées appartiennent à la norme ISO 8601 avec un décalage explicite, tel que 2025-10-09T09:33:20Z.
La frontière de 2038
Secondes signées de 32 bits depuis la fin de l'époque le 19/01/2038. Les systèmes construits sur ce stockage – y compris les anciennes colonnes MySQL et les plates-formes time_t 32 bits – ne peuvent pas représenter des dates ultérieures, et le mode de défaillance est un retour à 1901 plutôt qu'une erreur. Si vous concevez quelque chose destiné à survivre à la prochaine décennie, stockez dès maintenant des entiers 64 bits ou un type de date natif ; la migration ne fait que devenir plus difficile plus tard.
Convertir dans les deux sens, dans le navigateur
Le convertisseur d'horodatage YamlBox accepte les secondes ou les millisecondes, affiche les interprétations UTC et locales côte à côte avec la sortie ISO 8601, et va dans l'autre sens, d'une date à une époque. Il fonctionne entièrement côté client, de sorte que les horodatages des journaux de production ne quittent jamais votre machine.
Convertisseur d'horodatage — questions fréquemment posées
Pourquoi mon horodatage indique-t-il une date de 1970 ?
Il s'agit presque toujours d'une incompatibilité d'unité : les millisecondes ont été interprétées comme des secondes, ou la valeur est nulle car un champ n'a jamais été renseigné. Multipliez ou divisez par 1 000, selon le cas : la différence entre dix et treize chiffres constitue le diagnostic complet.
Quelle est la différence entre l’heure d’époque et ISO 8601 ?
Ils décrivent le même instant. Epoch est un entier en secondes UTC, compact et parfait pour l'arithmétique et le stockage ; ISO 8601 est une chaîne lisible avec un décalage, meilleure pour les humains, les logs et les API qui doivent rester lisibles.
Les horodatages Unix incluent-ils les fuseaux horaires ?
Non : une valeur d'époque est toujours UTC. Seul son rendu a un fuseau horaire, c'est pourquoi la conversion vers une date locale nécessite de savoir dans quelle zone se trouve le lecteur, et pourquoi deux développeurs peuvent être en désaccord sur le même horodatage tout en étant tous deux corrects.
Outils mentionnés dans cet article
Plus d'articles à lire
6 minutes de lecture
Décodeur JWT : ce qu'il y a à l'intérieur d'un jeton et ce qui
Utilisez un décodeur JWT pour inspecter l’en-tête, la charge utile et l’expiration d’un jeton – et comprendre pourquoi le décodage n’effectue pas de vérification, les vérifications de réclamation étant derrière la plupart des 401.
5 minutes de lecture
Encodage URL : quand s'échapper et quand casser des choses
URL encode et décode correctement — caractères réservés, plus contre %20, encodeURI contre encodeURIComponent et les bogues de double encodage derrière les liens rompus.