Pour finir cette série sur la gestion des données, il nous reste à voir les dates.

Encore une fois, quoi de plus simple qu’une date : « un simple moment dans le temps » ?

Ce moment que notre civilisation occidentale a pris l’habitude de décrire sous la forme d’un jour, d’un mois et d’une année avec en point de référence la date de naissance présumée d’un certain Jésus Christ.

Mais tout cela est bien trop simple pour nos amis les ordinateurs.

 

Une date : quel manque de précision ces humains !!

Un ordinateur avec son sens poussé du détail va stocker une date sous la forme d’un instant du temps. Il ne va donc pas s’arrêter au jour mais va aussi préciser l’heure, la minute, la seconde et même souvent la milliseconde. C’est  juste pour nous simplifier la vie que  dans certains cas, il ne nous présentera que les jours / mois / années.

En fait, pour honnête, les ordinateurs utilisent classiquement 2 formats très distincts pour stocker cet « instant du temps ».

 

Les dates sous forme de chiffres

Au siècle dernier, le format courant était de stocker une date dans un nombre sous la forme « 990828xxxx » pour décrire le 28/08/99. Cette méthode fut à l’origine de la grande peur de l’an 2000, quand le 99 allait devenir un 100 et déborder, ou nous propulser bêtement de 1999 à 19100.

Puis on est passé sur un compteur de secondes à partir d’une date de référence, ce qui dans le meilleur des cas, en 32 bits nous amènerait à un débordement similaire à l’an 2000 vers 2038 soit 2 milliards de secondes (et quelques poussières) après le 1/1/1970

Je passe les formats stockés sous 64 bits avec une date de référence exotique (1/1/1600 pour Active Directory, 31/12/1899 pour SQL server, 1/1/1900 pour Oracle et j’en passe).

Le stockage en numérique n’était donc pas la solution !

 

L’ISO nous a sauvé

Le grand normalisateur qu’est l’ISO nous a gratifié de la norme 8601 à la fin des années 80 en revenant à un stockage ASCII, ce qui place le 28 aout 2017 23:00 à la date ISO du 20170828T220000Z ce qui est presque lisible.

Néanmoins un esprit observateur notera que mon 23 heures se trouve noté 22 et qu’un Z termine la chaine.

 

« Il est minuit, Docteur Schweitzer » – Oui mais où ?

L’universalité de notre monde digital nous donne accès à des données sur la planète entière, mais ce que je crée à 23:00 à Paris est vu comme créé à 17:00 si je suis à New-York, et demain matin pour un résident japonais.

La date doit donc être complétée par un lieu, disons pour faire simple par un fuseau horaire. C’est le propos de ce Z qui fait référence au méridien Zéro (Greenwich pour les anciens) et permet de réévaluer la vraie date pour les autres, mais qui peut bien sûr prendre la forme de n’importe quel fuseau horaire ou « timezone »  de la planète.

C’est donc cette chaine qui s’est imposée dans la grande majorité des cas pour horodater les données informatiques.

 

Que retenir de tout ça ?

C’est la fin de cette série de billets. S’il y a une chose à retenir, c’est que quel que soit le format réel de stockage, il est au final de peu d’importance .

Par contre, il va impliquer des limitations ou des contraintes qui elles, sont à prendre en compte dans toutes les étapes du traitement des données.

De fait, la généralisation des échanges inter applicatifs, la mondialisation des données ou tout simplement le Big Data impliquent de lever toute ambiguité sur le codage, la précision et finalement la signification des données échangées.

 

Olivier Piochaud, Président Directeur Général d’Apsynet

Newsletter

Categories: Développement & Web