Le choix dans la date ? ou "ISO-8601, le retour de la vengeance" ou "01/01/2018 m'a tuer"


(Charles Nepote) #1

Je n’ai pas trouvé de texte généraliste de référence qui raconte dans le détail pourquoi il est utile et important de promouvoir ISO-8601. La fiche Wikipedia est bien faite mais très factuelle. Elle ne raconte qu’entre les lignes pourquoi ce standard est important. Cette norme mérite un texte pédagogique simple, qui explique pourquoi elle devrait être massivement adoptée, notamment dans les jeux Open Data.

Alors je me lance, avec ce texte ci-dessous, sûrement perfectible. N’hésitez pas à commenter et améliorer, ou dire que vous n’êtes pas d’accord.


On me demande régulièrement pourquoi des dates au format 2018-12-31 ?

Ce type de date n’est pas encore la “norme” en France, mais il s’agit pourtant d’une norme ! et qui n’a rien d’américain ou d’anglais, comme on peut le penser à tord. Il s’agit de la norme ISO-8601 qui tend aujourd’hui à devenir la norme de référence dans le monde de la data : https://fr.wikipedia.org/wiki/ISO_8601

Cette norme présente plusieurs avantages. Intrinsèquement :

  • c’est une norme on ne peut plus officielle (ISO)
  • elle est internationale (ISO)
  • elle est très bien spécifiée (ISO)
  • elle est très bien documentée et glosée sur internet (on trouve quantité d’articles l’expliquant ; sa page Wikipedia est très bien faite, etc.)
  • un tri alphabétique est équivalent à un tri par date (ce qui n’est pas vrai pour les dates type 01/01/2018)
  • elle gère finement de nombreuses données temporelles : fuseaux horaires, intervalles, semaines, etc.

Sur le plan des usages, elle tend à s’imposer de plus en plus et il existe ÉNORMÉMENT de bibliothèques logicielles qui l’implémente – c’est le cas pour la totalité des langages de programmation répandus.

Elle est parfaitement gérée par Libre Office et Google Spreadsheet, qui l’interprètent nativement comme une date ; exemple pour ce dernier :

Elle est parfaitement gérée par la plupart des outils professionnels de manipulation de données (OpenRefine, Tableau, etc.).

Pour toutes ces raisons, Open Data France recommande ISO-8601 et l’utilise dans le cadre du Socle commun des données locales.

À mes yeux, son seul défaut ennuyeux, qui ne dépend pas d’elle, est de ne pas être gérée nativement par Excel. De fait, ce dernier à très mauvaise réputation sur la gestion des dates : http://dataabinitio.com/?p=798
Il existe par ailleurs quantité de contournements et de macros permettant de s’en sortir (votre moteur de recherche préféré en donne rapidement différents exemples).

On pourrait cependant considérer qu’une date ISO-8601, mal gérée par Excel, est une barrière à l’entrée pour les néophytes et autres non spécialistes de la data. Ce n’est pas faux et je suis habituellement le premier à encourager l’abaissement de la barrière à l’usage. Dans le cas d’ISO-8601, cependant, pour toutes les raisons données plus haut, je pense que l’usage de ce format de date est un investissement pour l’avenir et tire les usagers vers le haut. J’encourage dès maintenant, lorsque c’est possible, à abandonner l’ancien monde des dates localisées et non normalisées (01/01/2018 ou 01-01-2018 ?).

J’encourage aussi tout ceux qui connaissent et apprécient ses qualités à faire oeuvre de pédagogie, d’explications claires et documentées, comme je le fais avec ce présent texte qui peut, s’il en est, vous aider peut-être à faire connaître et utiliser cet excellent format.

Pour une fois qu’il existe une norme claire, utile et bien pensée, profitons-en !


(Nicolas Bonnel) #2

Je suis on ne peut plus d’accord avec tout ce que tu viens de dire. Le fait d’avoir une notation indépendante du pays / langue et d’être nativement triable par un tri alphabétique sont pour moi les 2 plus gros avantages du format.

Après il y a bien sûr le coté norme qui va faciliter l’interopérabilité : ça devient beaucoup plus facile de faire du transport intermodal entre 2 pays quand les dates de départ/arrivée sont écrite dans le même format, avec en plus la gestion facile du fuseau horaire.

Le seul petit inconvénient est de devoir faire un effort pour déshabituer notre cerveau aux représentations de type JJ-MM-AAAA qui sont dans l’autre sens.


(Joël Gombin) #3

Je suis également pleinement d’accord. Je n’ai que deux choses à ajouter.
L’une est une illustration (quasi) de ton titre :
choixdansladata

L’autre est cette recommandation d’XKCD :

xkcd


(Christian Quest) #4

J’ajouterai aussi que de nombreuses librairies existent pour quasiment tous les langages de programmation pour parser correctement ces dates.

Excel, encore une fois montre qu’il n’est pas un outil adapté à manipuler de la donnée :wink:


(magalie.dartus) #5

Pour en rajouter encore une couche la norme ISO 8601 est celle de la Directive INSPIRE :
Extrait du Règlement (CE) N°1205/2008 de la commission du 3 décembre 2008
“…Le système de référence par défaut est le calendrier grégorien et les dates sont exprimées conformément à la norme ISO 8601.”