ISO 8601

Un article de Wikipedia, l'encyclopedie libre.
Explication de l'ISO 8601 - les trois extensions illustrees sont valides.

La norme ISO 8601 est une norme de l' Organisation internationale de normalisation (ISO) qui specifie la representation numerique de la date et de l' heure , respectivement basees sur le calendrier gregorien et le systeme horaire sur 24 heures . Cette notation, creee en 1988, est destinee a eviter toute confusion dans les communications internationales due au grand nombre de notations nationales differentes.


La representation de la date et de l'heure est effectuee comme suit, si l'on souhaite etre le plus precis possible :

AAAA-MM-JJTHH:MM:SS,ss-/+FF:ff

  • ≪ AAAA ≫ represente l' annee sur quatre chiffres (par exemple : 1959) ;
  • ≪ MM ≫ represente le mois sur deux chiffres (par exemple : 12 pour decembre) ;
  • ≪ JJ ≫ represente le jour du mois sur deux chiffres (par exemple : 25 pour le 25 e jour du mois) ;
  • ≪ T ≫ pour time permet de separer les indications de date (a gauche) et d'heure (a droite) ;
  • ≪ HH ≫ represente l' heure en systeme 24 heures (par exemple : 15) ;
  • ≪ MM ≫ represente les minutes (par exemple : 20) ;
  • ≪ SS ≫ represente les secondes (par exemple : 49) ;
  • ≪ ss ≫ represente les fractions de seconde sur autant d'unites que necessaire (par exemple : 3342) ;
  • ≪ -/+≫ represente le fuseau horaire , ou ≪ + ≫ permet d'indiquer un fuseau en avance sur UTC et ≪ - ≫ permet d'indiquer un fuseau en retard sur UTC ;
  • ≪ FF ≫ represente le nombre d'heures d'avance ou de retard sur le fuseau horaire UTC ;
  • ≪ ff ≫ represente le nombre de minutes d'avance ou de retard sur le fuseau horaire UTC.
La date ISO courante :
2024-05-23
L'heure ISO courante [ actualiser ]  :
11:10:56Z
La date et l'heure ISO courantes :
2024-05-23T11:10:56Z
ou encore :
2024-W21-4T11:10:56Z

Historique [ modifier | modifier le code ]

La premiere edition de la norme ISO 8601 a ete publiee en 1988. Elle remplace et unifie plusieurs normes ISO traitant les differents aspects de notation des dates et des heures (normes ISO 2014, 2015, 2711, 3307 et 4031) [ 1 ] . Cette norme internationale est mise a jour en 2000 puis 2004 [ 2 ] et en 2019, elle est scindee en 2 parties: ISO 8601-1:2019 (Regles de base) et 8601-2:2019 (Extensions).

La version de 1989 de la norme ISO est reprise par le systeme de normalisation francais sous la reference NF  EN 28601:1992. Cette norme francaise est annulee le [ 3 ] . Les editions ISO de 2019 sont a utiliser a la place.

La notation numerique du plus etendu au plus precis ≪ AAAA-MM-JJ ≫ a ete introduite par la norme ISO 2014:1976 ; la numerotation des semaines par l'ISO 2015:1976. Toutes deux sont integrees dans la norme ISO 8601.

Le comite technique TC 154 s'occupe de la maintenance de la norme ISO 8601 [ 4 ] .

Notation complete [ modifier | modifier le code ]

AAAA-MM-JJTHH:MM:SS,ss-/+FF:ff

Les notations suivantes sont utilisees pour symboliser les formats presentes :

  • ≪ AAAA ≫represente l’annee gregorienne sur 4 chiffres fixes compris entre 1583 et 9999. Les annees 0001 a 1582 necessitent un accord mutuel, de meme que l'extension aux annees a plus de 4 chiffres. Il n'y a pas de representation standard des annees avant Jesus-Christ, mais certains le permettent avec un accord mutuel en utilisant le prefixe litteral ≪ B ≫ suivi de 4 chiffres a partir de 0001 pour la designation classique des annees sans 0000, ou le prefixe ≪ U ≫ suivi d'un signe et de 4 chiffres a partir de 0000 pour l’extension gregorienne proleptique du calendrier UTC.
  • ≪ ? ≫ est ecrit litteralement (signe moins ≪ - ≫, ASCII ou mathematique ≪ ? ≫) dans les formats etendus (separateur de date standard ISO), absent des formats de base.
  • ≪ MM ≫ represente le numero du mois dans l'annee sur deux chiffres entre 01 et 12.
  • ≪ JJ ≫ represente le numero du jour dans le mois sur deux chiffres entre 01 et 31.
  • ≪ T ≫ est ecrit litteralement, mais peut etre omis lorsqu'il n'y a pas de risque de confusion [ 5 ] .
  • ≪ HH ≫ represente l’heure du jour sur deux chiffres entre 00 et 24.
  • ≪ : ≫ est ecrit litteralement dans les formats etendus.
  • ≪ MM ≫ represente la minute sur deux chiffres entre 00 et 59.
  • ≪ SS ≫ represente la seconde sur deux chiffres entre 00 et 60.
  • ≪ , ≫ est ecrit litteralement dans les formats etendus [ 6 ] , le point ≪ . ≫ etant generalement aussi accepte.
  • ≪ ss ≫ represente la fraction de seconde sur un ou plusieurs chiffres.
  • ≪ -/+≫ represente le fuseau horaire , ou ≪ + ≫ permet d'indiquer un fuseau horaire en avance sur UTC et ≪ - ≫ permet d'indiquer un fuseau horaire en retard sur UTC.
  • ≪ FF ≫ represente le nombre d'heures d'avance ou de retard sur le fuseau horaire UTC.
  • ≪ ff ≫ represente le nombre de minutes d'avance ou de retard sur le fuseau horaire UTC.

Date et heure [ modifier | modifier le code ]

Les elements se suivent par ordre croissant de precision. Ainsi, le moins precis, l' annee , vient en tete (sur 4 chiffres), suivi du mois (2 chiffres, de 01 a 12) et du quantieme (de 01 a 31). Chaque element est separe de celui qui le precede par un tiret ≪ - ≫. La date se fonde sur le calendrier gregorien . Ainsi, s'il etait necessaire de representer des annees avant la mise en application de ce calendrier (avant 1582-12-20 en France), une methode de comptage entre les parties s'echangeant les informations devrait etre convenue par avance.

L'indication de l'heure debute par la lettre ≪ T ≫ (pour time ), suivie des elements suivants, toujours ordonnes par precision croissante : heures (de 00 a 24), minutes (de 00 a 59) puis secondes (00 a 60) en utilisant deux-points ≪ : ≫ pour separateur. Ceci peut etre suivi d'une virgule ≪ , ≫ puis de decimales de seconde, en quantite necessaire a la precision recherchee (exemple : ≪?T15:23:56,9854?≫). On rencontre parfois un point au lieu d'une virgule, en particulier chez les anglophones?; la norme tolere cet usage mais recommande la virgule.

Si la notation de l'heure utilise le numero 24, alors les minutes et les secondes doivent etre a 00. C'est une maniere pratique en informatique de distinguer debut et fin de journee quand la date n'est pas precisee. ≪ T24:00 ≫ equivaut strictement a ≪ T00:00 ≫ du jour suivant : ≪ 2007-03-31T24:00 ≫ est le meme instant que ≪ 2007-04-01T00:00 ≫.

L'ecriture 60 pour les secondes representera une 61 e  seconde. En effet, il est parfois necessaire d'ajouter ou d’enlever une seconde intercalaire avant certains mois. ≪ T23:59:60 ≫ representerait donc une seconde ajoutee entre ≪ T23:59:59 ≫ et ≪ T24:00:00 ≫. Cependant, les horloges synchronisees n'indiquent generalement pas cette seconde intercalaire et preferent se resynchroniser progressivement.

Fuseau horaire [ modifier | modifier le code ]

Pour tous les formats acceptes dans la norme ISO 8601, il est possible de specifier le fuseau horaire . Le signe de depart est positif ≪ + ≫ lorsque l’heure locale est en avance sur le temps universel (UTC) , negatif ≪ - ≫ pour les fuseaux horaires en retard par rapport a UTC.

Il y a trois manieres d’indiquer ce fuseau horaire :

  1. en ajoutant ≪ +FFff ≫ ou ≪ ?FFff ≫, ≪ FF ≫ representant le nombre d’heures et ≪ ff ≫ le nombre de minutes de decalage par rapport au temps universel ;
  2. en ajoutant ≪ +FF:ff ≫ ou ≪ -FF:ff ≫, le separateur horaire ≪  : ≫ etant ecrit ;
  3. en inscrivant litteralement un ≪ Z ≫ a la fin lorsqu’il s’agit de l’heure UTC. (≪ Z ≫ pour meridien zero , aussi connu sous le nom ≪ Zulu ≫ dans l’ alphabet radio international ).

Si l'heure est en UTC, il faut rajouter un ≪ Z ≫ apres l'heure et sans espace. Ainsi ≪ 09:30 UTC ≫ est represente ≪ 09:30Z ≫ ou ≪ 0930Z ≫.

Jour de l'annee [ modifier | modifier le code ]

Il est possible de representer les dates en donnant l'annee et le numero du jour dans l'annee. Un nombre sur 3 chiffres de 001 a 366. Par exemple : ≪ 1970-033 represente le 33 e  jour de l'annee 1970, c.-a-d. le .

Semaine [ modifier | modifier le code ]

La norme prevoit la possibilite d'ecrire une date d'apres sa semaine. Il faut commencer par la lettre ≪ W (pour week , ≪ semaine ≫ en anglais) suivi du numero de semaine sur deux chiffres (et eventuellement du numero du jour de 1 a 7). Par exemple :

  • ≪ 2005-W52-1 ≫ correspond au premier jour (lundi) de la semaine 52 de l'annee 2005, autrement dit, au lundi 26 decembre 2005, ou ≪ 2005-12-26 (les deux ecritures sont equivalentes).
  • ≪ 2005-W52-7 ≫ correspond au dernier jour de la semaine 52 de 2005, donc au .
  • ≪ 2006-W01-1 ≫ correspond au , soit ≪ 2006-01-02 ≫.
  • ≪ 2004W48 designe la semaine n o  48 de l'annee 2004.

Tout le monde ne respecte pas la meme convention de numerotation des semaines. Par exemple, le Canada et les Etats-Unis considerent le dimanche plutot que le lundi comme le premier jour de la semaine. Cette norme ISO a defini de facon stricte une regle de numerotation, reconnue internationalement et couramment utilisee :

  1. la semaine commence le lundi ;
  2. les jours de chaque semaine sont numerotes de 1 pour le lundi , a 7 pour le dimanche  ;
  3. la semaine 1 est celle qui contient le premier jeudi de l'annee.

Cela entraine plusieurs consequences :

  • La semaine 1 respecte la regle n°1, i.e. il n'y a pas de semaine partielle, elle peut donc commencer des l'annee precedente si son jeudi tombe entre le et le inclus.
  • La semaine 1 (du lundi au dimanche) est la premiere a contenir la majorite de ses jours (au moins 4 jours) dans l'annee. Elle contient systematiquement le 4 janvier . Elle contient systematiquement le premier jour ouvre de l'annee en considerant que le 1 er janvier, les samedis et les dimanches sont chomes. C'est aussi celle dont le lundi est le plus proche du jour de l'an. Elle commence au plus tot le ou au plus tard le  ;
  • La derniere semaine de l'annee (52 ou 53) est celle qui contient le dernier jeudi de l'annee. Elle est la derniere a avoir la majorite de ses jours (au moins 4) dans l'annee et contient systematiquement le 28 decembre . C'est aussi celle dont le dimanche est le plus proche du 31 decembre. Elle termine au plus tot le ou au plus tard le  ;
  • Il n'y a pas de semaine zero (la semaine 1 d'une annee succede immediatement a la derniere semaine de l'annee precedente) ;
  • Les premiers jours de la semaine 1; peuvent eventuellement etre situes fin decembre de l'annee precedente. De meme, la derniere semaine (52 ou 53) d'une annee peut avoir ses derniers jours au tout debut de l'annee suivante. Une annee comporte toujours soit 52, soit 53 semaines au total ;
  • Les annees ont 52 semaines en general (365 jours = 52 × 7 + 1). Si une annee a son 1 er janvier un lundi, son tombe aussi un lundi (un mardi si annee bissextile). Seules les annees dont le jour de l'an est un jeudi auront 53 semaines (un mercredi ou un jeudi pour les annees bissextiles).

Notation abregee [ modifier | modifier le code ]

La norme prevoit la possibilite d'utiliser une notation abregee.

L'indication du mois et de l'annee seuls s'effectue de la maniere suivante : ≪ AAAA-MM ≫, par exemple : ≪ 2003-02 ≫. L'heure seule s'ecrit de la maniere suivante : ≪ THH:MM:SS ≫.

Il est egalement possible d'abreger la notation du fuseau horaire comme suit : ≪ THH:MM:SS,ss+/-FF ≫, sans indication des minutes.

Il est egalement possible de retirer certains separateurs tel que le tiret ou des deux-points. Il convient alors de les retirer tous (tous les tirets et/ou tous les deux-points) pour eviter les confusions. Une ecriture prise hors de son contexte doit rester comprehensible et on doit en particulier identifier s'il s'agit d'une heure ou d'une date. (≪ 2005 ≫ est une annee, ≪ T2005 ≫ ou ≪ 20:05 ≫ sont des heures).

Pour exemple, ces notations sont equivalentes: ≪ 20040204 ≫, ≪ 2004-02-04 ≫, ≪ 2004-W06-3 ≫, ≪ 2004W063 ≫.

Enfin, il est egalement possible de remplacer les elements tronques par des tirets ≪ - ≫. Par exemple, en omettant l'annee, on noterait le ainsi : ≪ --1202 ≫. On pourrait le reduire a ≪ -1202 ≫ sans confusion avec ≪ 1202 ≫ seul qui representerait l'annee 1202.

≪ 2003---12 ≫ ou ≪ 2003--12 ≫ representeraient le 12 de n'importe quel mois de l'an 2003, sans confusion avec ≪ 2003-12 ≫ qui representerait .

Intervalle entre deux dates [ modifier | modifier le code ]

Il est egalement possible d'indiquer un intervalle de temps (entre deux dates precises). Pour ce faire, la norme preconise l'utilisation de la barre oblique ≪ / ≫ pour separateur.

La barre oblique separe la date de debut et la date de fin. Si seul le dernier element change il est possible d'omettre le debut. Par exemple :

  • ≪ 2004-12-02T23:00/2005-01-01T12:30 ≫ represente une periode comprise entre le a 23  h et le a 12  h  30  ;
  • ≪ 2004-12-02T22:00/23:30 ≫ represente une periode comprise entre le a 22  h et le a 23  h  30  ;
  • ≪ 2004-12-02T22:00/15 ≫ represente une periode comprise entre le a 22  h et le a 22  h  15  ;
  • ≪ 2004-12-02T22/23 ≫ represente une periode comprise entre le a 22  h et le a 23  h  ;
  • ≪ 2004-12-02/05 ≫ represente une periode comprise entre le a h et le a h .

Duree [ modifier | modifier le code ]

Une duree represente une quantite de temps dans l'absolu, sans commencer a un instant precis.

La norme recommande de commencer l'ecriture par la lettre ≪ P ≫ (pour Period en anglais), puis indiquer les valeurs dans l'ordre croissant de precision, en y precisant pour chacune l'unite correspondante. Les unites sont representees dans le tableau suivant.

Unites de valeur.
Symbole Nom anglais Nom Francais
Y Years Ans
W Weeks Semaines
M Months Mois
D Days Jours
H Hours Heures
M Minutes Minutes
S Seconds Secondes

Tout comme pour representer une date, on utilise la lettre ≪ T ≫ pour separer les jours des heures. Par exemple, ≪ P18Y9M4DT11H9M8S ≫ represente une duree de 18 ans, 9 mois, 4 jours, 11 heures, 9 minutes et 8 secondes.

Si le contexte necessite de distinguer des durees positives ou negatives, il d'convient d'ajouter le signe ≪ + ≫ ou ≪ - ≫ en tete d'ecriture.

Il est possible de combiner les notations d'intervalle et de duree pour indiquer une date de debut et sa duree. Par exemple : ≪ 2004-12-02/P3D ≫ represente l'intervalle de temps d'une duree de 3 jours debutant le . L'ordre d'ecriture entre la date et la duree n'est pas definie, il est donc possible d'ecrire la duree en premier, par exemple : ≪ PT1H/2006-01-01 ≫ represente l'heure qui precede le passage au jour de l'an de 2006).

Si la duree est repetitive, on precede la notation par la lettre ≪ R ≫ et, eventuellement le nombre de repetitions, par exemple : ≪ R5/PT01:30 ≫ represente cinq repetitions d'une heure et trente minutes.

Il est egalement possible de combiner les notations de date, d'heure, d'intervalle et de duree. Par exemple : ≪ R11/1985-04-12T23:20:50/P1Y2M ≫ represente 11 occurrences separees entre elles d'un an et deux mois, en commencant la premiere le a 23  h  20  min  50  s .

Annexes [ modifier | modifier le code ]

Articles connexes [ modifier | modifier le code ]

References [ modifier | modifier le code ]

  1. (en) ≪  ISO 8601:1988, revisions  ≫ (consulte le )
  2. (en) ≪  Data elements and interchange formats -- Information interchange -- Representation of dates and times  ≫ (consulte le )
  3. AFNOR , NF EN 28601 juin 1993 Annulee
  4. ≪  ISO/TC 154 Processus, elements d'informations et documents dans le commerce, l'industrie et l'administration  ≫ (consulte le )
  5. norme ISO 8601:2004(E) , ISO ? ISO 4.3.2 NOTE: By mutual agreement of the partners in information interchange, the character [T] may be omitted in applications where there is no risk of confusing a date and time of day representation with others defined in this International Standard.
  6. norme ISO 8601:2004(E) , ISO ? ISO 4.2.2.4 … the decimal fraction shall be divided from the integer part by the decimal sign specified in ISO 31-0, i.e. the comma [,] or full stop [.]. Of these, the comma is the preferred sign.

Liens externes [ modifier | modifier le code ]