Convertisseur de date et heure

Convertissez entre horodatages Unix, millisecondes JavaScript, ISO 8601, ISO 9075, RFC 3339, RFC 7231, Mongo ObjectID et dates série Excel. Le format d'entrée est détecté automatiquement.

Convertissez un même instant dans tous les formats dont vous pourriez avoir besoin.

Les formats d'horodatage expliqués

Secondes ou millisecondes

L'erreur la plus fréquente dans la manipulation des dates consiste à confondre les deux. Les horodatages Unix comptent les secondes depuis le 1970-01-01 UTC ; Date.now() en JavaScript compte les millisecondes. Passez un horodatage Unix directement au constructeur Date sans le multiplier par 1000 et vous vous retrouvez en janvier 1970. En règle générale, un nombre à 10 chiffres correspond à des secondes et un nombre à 13 chiffres à des millisecondes : c'est exactement ainsi que la détection automatique tranche ici.

Les standards et leurs différences

  • ISO 8601 est le standard de référence : 2024-01-15T10:30:00.000Z. Le T sépare la date de l'heure et le Z signifie UTC.
  • RFC 3339 est un profil plus strict d'ISO 8601 destiné aux protocoles Internet. Il exige un décalage explicite et écrit donc +00:00 plutôt que Z.
  • ISO 9075 est la forme standard du SQL, 2024-01-15 10:30:00 — une espace au lieu du T, et pas de fuseau horaire. C'est ce qu'affichent la plupart des bases de données.
  • RFC 7231 est le format de date HTTP utilisé dans les en-têtes Date, Expires et Last-Modified, toujours en GMT.

Les deux cas particuliers

Un Mongo ObjectID fait 12 octets et les quatre premiers contiennent la date de création en secondes Unix : chaque ObjectID transporte donc un horodatage. Cet outil l'extrait au décodage ; lors de la génération, il remplit les huit octets restants de zéros au lieu d'inventer des valeurs de machine et de compteur.

Les dates série Excel comptent les jours depuis le 1899-12-30, la partie fractionnaire représentant l'heure de la journée. Cette origine étrange existe parce qu'Excel reproduit délibérément un bug de Lotus 1-2-3 qui considérait 1900 comme une année bissextile. Prendre le 1899-12-30 comme jour zéro fait correspondre correctement toutes les dates à partir de mars 1900, et c'est la raison pour laquelle ce convertisseur l'utilise.

Tout n'est qu'un seul instant

Quoi que vous saisissiez, l'outil l'analyse en un unique objet Date JavaScript et restitue ce même instant dans les onze formats. Rien n'est envoyé ailleurs — la conversion s'effectue entièrement dans votre navigateur.

Questions fréquentes

Pourquoi mon horodatage Unix affiche-t-il 1970 ?
Vous avez presque certainement fourni des secondes là où des millisecondes étaient attendues. Multipliez par 1000, ou choisissez « Secondes Unix » comme format d'entrée pour que l'outil s'en occupe à votre place.
Quelle est la différence entre ISO 8601 et RFC 3339 ?
RFC 3339 est un sous-ensemble plus strict d'ISO 8601 destiné aux protocoles Internet. Toute date RFC 3339 est un ISO 8601 valide, mais pas l'inverse — RFC 3339 exige toujours un décalage UTC numérique tel que +00:00, tandis qu'ISO 8601 accepte aussi Z, les dates par semaine et les dates ordinales.
Puis-je extraire un horodatage d'un Mongo ObjectID ?
Oui. Les 4 premiers octets (8 caractères hexadécimaux) d'un ObjectID correspondent à la date de création en secondes Unix. Collez l'ObjectID et l'outil décode cet instant dans tous les autres formats.
Pourquoi l'origine Excel est-elle le 1899-12-30 et non le 1900-01-01 ?
Excel a volontairement conservé un bug de Lotus 1-2-3 qui traite 1900 comme une année bissextile. Décaler l'origine au 1899-12-30 compense le décalage d'un jour qui en résulte, de sorte que toutes les dates à partir de mars 1900 se convertissent correctement.
Mes données sont-elles envoyées à un serveur ?
Non. L'analyse et le formatage se font localement dans votre navigateur avec l'API Date standard. Rien n'est transmis ni journalisé.