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
|
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
]
.
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.
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.
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 :
- en ajoutant ≪ +FFff ≫ ou ≪ ?FFff ≫, ≪ FF ≫ representant le nombre d’heures et ≪ ff ≫ le nombre de minutes de decalage par rapport au temps universel ;
- en ajoutant ≪ +FF:ff ≫ ou ≪ -FF:ff ≫, le separateur horaire ≪
: ≫
etant ecrit ;
- 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 ≫.
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
.
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 :
- la semaine commence le lundi ;
- les jours de chaque semaine sont numerotes de 1 pour le
lundi
, a 7 pour le
dimanche
;
- 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).
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
.
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
0
h
et le
a
0
h
.
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
.
- ↑
(en)
≪
ISO 8601:1988, revisions
≫
(consulte le
)
- ↑
(en)
≪
Data elements and interchange formats -- Information interchange -- Representation of dates and times
≫
(consulte le
)
- ↑
AFNOR
, NF EN 28601 juin 1993
Annulee
- ↑
≪
ISO/TC 154 Processus, elements d'informations et documents dans le commerce, l'industrie et l'administration
≫
(consulte le
)
- ↑
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.
- ↑
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.