Aller au contenu principal
    Standards6 min de lecture

    ISO 8601 : le standard universel des dates et heures

    ISO 8601 est le standard international qui définit comment écrire une date sans ambiguïté. Format, exemples et règles précises.

    ISO 8601 est la norme internationale qui définit la représentation des dates et heures. Publiée en 1988, révisée en 2019, elle est utilisée par tous les standards techniques modernes : JSON, XML, HTTP, SQL, log files. Une date écrite selon ISO 8601 est non ambiguë, triable et universelle.

    Le format de base

    YYYY-MM-DD       → 2026-02-01 (1er février 2026)
    YYYY-MM-DDTHH:MM:SS → 2026-02-01T14:30:00 (avec heure locale)
    YYYY-MM-DDTHH:MM:SSZ → 2026-02-01T14:30:00Z (UTC)
    YYYY-MM-DDTHH:MM:SS+01:00 → avec offset explicite

    Les 5 règles ISO 8601

    1. Année sur 4 chiffres, mois sur 2, jour sur 2, séparés par -
    2. Ordre décroissant : année → mois → jour → heure → minute
    3. Séparateur T entre la date et l'heure (un espace est toléré)
    4. Z final pour indiquer UTC, ou un offset ±HH:MM
    5. Heures sur 24h (de 00 à 23), jamais AM/PM

    Représentations avancées

    TypeFormatExemple
    Date seuleYYYY-MM-DD2026-02-01
    Date + heure UTCYYYY-MM-DDTHH:MM:SSZ2026-02-01T14:30:00Z
    SemaineYYYY-Www-D2026-W05-1 (lundi semaine 5)
    Jour de l'annéeYYYY-DDD2026-032 (32e jour)
    DuréePnYnMnDTnHnMnSP1Y2M10DT2H30M (1 an 2 mois 10 j 2h 30 min)
    IntervalleDEBUT/FIN2026-01-01/2026-12-31

    Pourquoi tous les systèmes l'utilisent

    • Tri alphabétique = tri chronologique : 2026-02-01 vient bien avant 2026-12-31.
    • Pas d'ambiguïté : impossible de confondre le mois et le jour.
    • Parseable par toutes les bibliothèques (JavaScript Date, Python datetime, Java OffsetDateTime).
    • Aligné UTC par défaut, simplifie la synchronisation internationale.

    Où on le rencontre

    • JSON"createdAt": "2026-02-01T14:30:00Z"
    • HTTP — entête Last-Modified: 2026-02-01T14:30:00 GMT (variante RFC 7231)
    • SQL — type TIMESTAMP WITH TIME ZONE stocke en ISO 8601 UTC
    • Logs2026-02-01 14:30:00.123 INFO ...
    • HTML<time datetime="2026-02-01">

    Convertir vers ou depuis ISO 8601

    Erreurs courantes

    • 2026/02/01 — slashes au lieu de tirets : ce n'est plus ISO 8601.
    • 2026-2-1 — chiffres non zero-padded : invalide.
    • 2026-02-01 14:30 EST — abréviation de fuseau : ambiguë (EST = Eastern ou Australian Eastern ?), utiliser +05:00 ou +10:00.
    • 2026-13-01 — mois 13 : invalide.

    Pour aller plus loin