La norme ISO 8601

Je vous accorde que l'étude que je vous propose ne sera pas passionnante.

Elle aura au moins l'avantage de nous faire prendre connaissance des normes en matières de dates et autres. Et, peut-être, de constater que nous (moi le premier sur ce site) ne sommes pas très respectueux de ce qui devrait être une "manière de faire".

UN PEU D'HISTOIRE

L'ISO (Organisation internationale de normalisation) est née officiellement le 23 février 1947 de l'union de deux organisations.

L'une était L'ISA (Fédération internationale des associations nationales de normalisation) qui, bien qu'établie à New York, avait un domaine d'activité qui se cantonnait à l'Europe continentale.

L'autre était l'UNSCC (Comité de coordination de la normalisation des Nations Unies) administrée à Londres.

C'est au cours d'une conférence, réunissant tous les pays membres (25 pays représentés par 65 délégués) des deux organisations, qui se tient à l'Institut des ingénieurs civils à Londres le 14 octobre 1946, que la décision de créer une nouvelle organisation est prise. Son objet serait de "faciliter la coordination et l'unification internationales des normes industrielles".

Pourquoi ISO ? Il se dit que ce serait un nom dérivé du grec, isos, qui signifie "égal". Willy Kuert, délégué suisse à la conférence de Londres en 1946 déclare que "cet aspect n'a été évoqué à aucun moment à Londres". Donc, c'est ISO et c'est comme ça ! Et c'est comme ça dans tous les pays du monde. C'est bien le moins que puisse faire une organisation chargée de normalisation.

Où se trouve le siège de l'ISO ? Il a manqué être à Paris mais en fin de compte et à une voix près il fut décidé lors de la réunion de Londres qu'il serait à Genève.

C'est en 1946 que Genève est désignée comme siège de l'ISO
En 1956, l'ISO s'installe rue de Varembé

Comment fonctionne l'ISO ?

L'ISO est une organisation non gouvernementale. Elle n'a donc ni la vocation ni le pouvoir d'imposer l'application d'une norme. Sa vocation est d'établir un consensus sur des solutions suite à des demandes. Mais, il ne faut pas s'y tromper : ces demandes sont fortes et le respect des normes par tel ou tel pays est un gage de fiabilité et de qualité.

L'ISO coordonne, par le biais de son Secrétariat central de Genève, un réseau d'instituts nationaux de normalisation qui compte actuellement 146 pays. Chaque pays est représenté par un membre.

Chaque membre peut participer à l'élaboration d'une norme qu'il juge nécessaire pour son pays et a droit à un vote quelle que soit la taille du pays. Enfin une organisation où l'égalité n'est pas un vain mot !

Combien de normes sont-elles créées ?

Depuis 1947, l'ISO a publié plus de 13 700 normes internationales. Tous les domaines sont concernés : " Sans dimensions normalisées des conteneurs pour le transport de marchandises, le commerce international serait plus lent et plus coûteux. Sans la normalisation des cartes téléphoniques et bancaires, la vie serait plus compliquée. L'absence de normalisation peut affecter la qualité de la vie elle-même, par exemple celle des handicapés, s'ils n'ont pas accès aux produits de consommation, aux transports publics et aux bâtiments parce que les dimensions des fauteuils roulants et des ouvertures n'ont pas été normalisées." Extrait d'un texte de l'ISO

Même là où on les attendait le moins : "La normalisation des filetages aide au bon assemblage des chaises, des bicyclettes d'enfant ou des avions et permet de résoudre les problèmes de réparation et d'entretien autrefois causés par le défaut de normalisation et qui représentaient un véritable casse-tête pour les fabricants et les utilisateurs de produits."

Si vous cherchez la liste des normes publiées, c'est ici.

Comment une norme voit-elle le jour ?

Lorsque certains secteurs industriels, techniques ou économiques trouvent un intérêt à la création d'une norme, il le font savoir à un membre national de l'ISO qui va soumettre la demande à l'ISO. Cette dernière juge de l'intérêt de la demande et l'accepte ou la refuse.

Si la demande est acceptée, l'étude de la norme est confiée à un comité technique existant ou à créer.

La norme demandée est élaborée par un comité technique constitué d'experts dans le domaine. D'autres spécialistes peuvent être associés. Les experts, choisis par l'institut national membre de l'ISO pour le pays concerné, participent aux travaux au sein des délégations nationales et, toujours dans un souci d'égalité, les délégations doivent représenter les intérêts de toutes les parties prenantes.

Les délégations nationales d'experts se réunissent jusqu'à obtention d'un consensus sur un projet d'accord.

Ce projet est communiqué (DIS = Projet de norme internationale ) à l'ensemble des membres de l'ISO pour lecture, observations et vote. Si le vote qui s'ensuit est favorable, le document et ses éventuels amendements sont communiqués (FDIS = Projet final de norme internationale) aux membres pour nouveau vote. Si le vote est positif, le document est publié comme Norme internationale.

Notons pour finir que c'est le groupe AFNOR qui est le membre français de l'ISO (entre autres) et assume les responsabilités attribuées à la France à ce titre.

L'Association française de normalisation a été créée en 1926 ; elle est reconnue d'utilité publique et est placée sous la tutelle du ministère chargé de l'industrie. Elle compte environ 3 000 entreprises adhérentes.

Pour en savoir plus sur l'AFNOR, c'est ici.

 

LA NORME ISO 8601

Si nous voulions être plus précis, nous devrions écrire ISO 8601:2000. En effet, la "version" 2000 reprend des normes antérieures (ISO8601:1988) et quelques autres éléments.

Son titre est : Éléments de données et formats d'échange - Échange d'information - Représentation de la date et de l'heure.

De nombreux pays ont repris cette norme avec leur propre référence. En voici la liste non limitative (merci à Ian Galpin et à ses informations) :

Afrique du Sud : ARP 010:1989.
Australie : AS 3802:1997.
Canada : CSA Z234.5:1989.
Japon : JIS X 0301-1992.
Norme Européenne : EN 28601:1992.
Norme USA : ANSI X3.30-1985(R1991) et NIST FIPS 4-1.

Et, pour les pays d'Europe en application de EN 28601 :

Allemagne : DIN EN 28601 (1993) & DIN 5008 (1996).
Autriche : OENORM EN 28601.
Belgique : NBN EN 28601 (1993).
Danemark : DS/EN 28601.
Espagne : UNE EN 28601.
Finlande : SFS-EN 28601.
France : NF EN 28601 (1993).
Grèce : ELOT EN 28601.
Hollande : NEN ISO 8601 (1994) & NEN EN 28601 (1994).
Islande : IST EN 28601:1992.
Irlande : IS/EN 28601:1993.
Italie : UNI EN 28601 (1993).
Luxembourg : ITM-EN 28601.
Norvège : NS-ISO 8601.
Pologne : PN-90/N-01204.
Portugal : EN 28601.
République tchèque : CSN EN 28601.
Royaume-Uni : BS EN 28601:1992 (replaces BS 7151).
Suède : SS-EN 28601 (1991).
Suisse : SN-EN 28601-1994.

Contenu de l'ISO8601:2000 :

Cette Norme traite les éléments suivants :

  • Date
  • Heure du jour
  • Temps Universel Coordonné (UTC)
  • Heure locale avec décalage horaire
  • Date et heure
  • Intervalles de temps
  • Intervalles de temps périodiques

Je vais essayer de représenter ces éléments sous forme de tableau. Vous avez de la chance : il vous suffit de vous reporter à la partie qui vous intéresse. Moi, je suis obligé de tout "me taper" !! Tout, peut-être pas parce que je vais me permettre de faire un peu de ménage pour ne laisser que les éléments utiles et simplifier le reste.

Trois remarques avant d'aborder le tableau :

1) La plupart des éléments ont une représentation de base et une représentation étendue pour faciliter la lecture.

2) Je laisse les abréviations en Anglais, et donc :

Y = année
M = mois
D = jour
w = semaine
h = heure
m = minute
s = seconde
n = chiffre entier positif ou zéro

P = intervalle de temps
R = indicateur d'intervalle de temps
T = séparateur des éléments date et heure
Z = indicateur UTC

3) La Norme utilise le calendrier grégorien et le rang des jours de la semaine se définit comme suit :

RANG
JOUR
01 Lundi
02 Mardi
03 Mercredi
04 Jeudi
05 Vendredi
06 Samedi
07 Dimanche

La semaine est identifiée dans l'année par un numéro. La première semaine de l'année (semaine 1) est celle qui contient le premier jeudi de l'année. La dernière semaine de l'année est celle qui précède la première semaine de l'année suivante. Pour le dire autrement, la première semaine de l'année est celle qui contient le 4 janvier.

Pour le reste :

ÉLÉMENT
FORMAT DE BASE
FORMAT ÉTENDU
OBSERVATIONS
LES DATES
Date courante

YYYYMMDD
20030607

YYYY-MM-DD
2003-06-07
7 juin 2003
Date courante réduite au mois YYYY-MM
2003-07
aucun  
Année YYYY
2003
aucun  
Siècle YY
20
aucun Moi, je veux bien mais...
Date courante

YYMMDD
030607

YY-MM-DD
03-06-07
siècle courant
Date courante réduite au mois -YYMM
-0306
-YY-MM
-03-06
siècle courant
Année -YY
-03
aucun siècle courant
Jour du mois --MMDD
--0607
--MM-DD
--06-07
année courante
Mois de l'année --MM
--06
aucun année courante
Jour du mois ---DD
---07
aucun mois courant
Je passe sur les années dépassant 9999. Nous aurons le temps d'y revenir quand on y sera !!
Date ordinale YYYYDDD
2003157
YYYY-DDD
2003-157
157 ème jour de l'année 2003 = 7 juin 2003
Date ordinale YYDDD
03157
YY-DDD
03-157
siècle courant
Jour de l'année en cours -157 aucun un seul tiret
Date de la semaine YYYYWwwD
2003W237
YYYY-Www-D
2003-W23-7
7 ème jour de la semaine 23 de l'année 2003
Année, semaine, jour YYWwwD
03W237
YY-Www-D
03-W23-7
siècle courant
Année et semaine YYWww
03W23
YY-Www
03-W23
siècle courant
Année,semaine et jour -YWwwD
-3W237
-Y-Www-D
-3-W23-7
Année de la décade courante
Année, semaine -YWww
-3W23
-Y-Www
-3-W23
Année de la décade courante
Semaine, jour -WwwD
-W237
-Www-D
-W23-7
Année courante
Semaine -Www
-W27
aucun Année courante
Jour -W-D
-W-5
aucun Semaine courante
HEURES DU JOUR
Heure locale hhmmss
151225
hh:mm:ss
15:12:25
 
Heures et minutes hhmm
1512
hh:mm
15:12
 
Heure hh
15
aucun  
Heures, minutes, secondes décimales hhmmss,ss
151224,5
hh:mm:ss,ss
151224,5
 
Heures, minutes décimales hhmm,mm
1512,8
hh:mm,mm
15:12,8
 
Heure décimale hh,hh
15,25
aucun  
Nous n'allons pas nous éterniser sur le "format réduit" des heures. Vous avez déjà compris qu'il suffit de remplacer l'élément manquant par un tiret (-). C'est le même principe que pour les jours
Minuit 000000 00:00:00 début d'un jour
Minuit 240000 24:00:00 fin d'un jour
Heure en coordonnées UTC hhmmssZ
hhmmZ
hhZ
hh:mm:ssZ
hh:mmZ
hhZ
Même format que l'heure légale. Rajouter Z à la fin
Écart temps local - temps UTC ±hhmm
±hh
±hh:mm

correspond au fuseau horaire : +0100 par exemple
Temps local + correction fuseau horaire hhmmss±hhmm
hhmmss±hh
hh:mm:ss±hh:mm
hh:mm:ss±hh
ex : 15:12:15+01:30
Date et heure : il suffit d'écrire la date selon un des formats vus et d'y rajouter l'heure dans un format vu. La partie date et la partie heure seront séparées par un T. Voir ci-dessous
Date et heure YYYYMMDDThhmmss
YYYYMMDDThhmmssZ
YYYYMMDDThhmmss±hhmm
YYYYMMDDThhmmss±hh
YYYY-MM-DDThh:mm:ss
YYYY-MM-DDThh:mm:ssZ
YYYY-MM-DThh:mm:ss±hh:mm
YYYY-MM-DDThh:mm:ss±hh
 

Intervalles : Il suffit d'indiquer l'instant de départ (date, date heure...) puis un séparateur / puis l'instant de fin (date, date heure...) ce qui peut donner, par exemple : YYY-MM-DDThh:mm:ss/YYY-MM-DDThh:mm:ss

Pour définir la durée de l'intervalle et non pas les dates de début et de fin, il suffit d'indiquer qu'il s'agit d'un intervalle en utilisant le préfixe P.

Exemple : P5Y6M3DT15H10M20S (5 ans 6 mois 3 jours 15 heures 10 minutes 20 secondes). Ne pas oublier le P pour signaler qu'il s'agit d'un intervalle de temps.

P7W : 7 semaines.

Bien entendu, rien n'empêche de mixer date de début et durée ou durée et date de fin.

Par exemple 2003-06-06T12:00:00/P0Y0M0DT00:03:00 signifie qu'un œuf dont la cuisson débute le 6 juin 2003 à midi sera cuit trois minutes plus tard. Cuisson "Coque" bien entendu !!

Et rien ne vous empêche d'écrire 2003-06-06T12:00:00/2003-06-06T12:03:00. Le résultat sera le même.

Si vous souhaitez une cuisson plus longue, écrivez 20030606T120000/20030606T120300 parce que le temps de déchiffrer ça... les trois minutes seront passées !