I. Les différentes représentations normalisées de l'heure▲
Dans des temps très anciens, le temps international n'existait pas…
Les hommes se déplaçaient très peu sur de longues distances et l'heure déterminée par la position du soleil leur suffisait. Ainsi, chaque pays, chaque région, voire chaque ville, utilisaient une heure qui leur était propre. C'était le temps de l'utilisation des cadrans solaires.
Les siècles ont passé et les hommes sont devenus moins sédentaires. Le système horaire basé sur le soleil a dévoilé de nombreuses défaillances. Afin de remédier à ce problème, différentes normes de coordination du temps sont apparues, mais sans résultat.
L'apparition du chemin de fer et du téléphone marquera un tournant dans l'histoire du temps. En effet, l'homme communiquant et se déplaçant de plus en plus, il a été nécessaire de mettre en place une norme internationale. C'est ainsi que sont apparus différents standards de calcul de l'heure, dont l'heure GMT et l'heure UTC.
Afin de mieux cerner le problème de la coordination du temps dans vos applications Delphi, il est nécessaire d'expliquer brièvement le fonctionnement de ces normes internationales.
I-A. Greenwich Mean Time (GMT)▲
GMT est un acronyme anglophone signifiant heure solaire moyenne de Greenwich.
Greenwich est une commune située à quelques kilomètres de Londres (Angleterre), accueillant l'Observatoire Royal de Greenwich.
Le système horaire GMT a été adopté au niveau international en 1884.
L'heure y est comptée à partir de midi et est donc décalée de 12 h par rapport au temps universel. L'heure GMT étant basée sur la rotation de la Terre, ce n'est donc pas un temps régulier. En effet, la vitesse de rotation de la Terre subit des variations faibles, mais assez chaotiques ; en plus elle diminue sur le long terme.
La norme GMT, du fait de ces imprécisions, n'est quasiment plus utilisée. Lorsque nous parlons d'heure GMT, nous faisons un abus de langage, la nouvelle norme internationale étant la norme UTC.
I-B. Temps Atomique International (TAI)▲
Le Temps Atomique International est calculé par le Bureau International des Poids et Mesures (BIPM) à partir des données de plus de 200 horloges atomiques situées dans des instituts de météorologie ou des observatoires de plus de 30 pays.
Le BIPM estime que le Temps Atomique International ne diffère pas d'une horloge idéale imaginaire par plus d'un dixième de microseconde (0.0000001 seconde) par an, en avance ou en retard.
La norme UTC en est un dérivé.
I-C. Universal Time Coordinated (UTC)▲
UTC est un acronyme anglais signifiant Temps universel coordonné.
La norme UTC est la base légale de l'heure dans le monde.
Cette norme est dérivée du Temps Atomique International dont elle diffère seulement par un nombre entier de secondes, actuellement 32. Ces secondes intercalaires sont insérées à l'initiative du Service International de la Rotation Terrestre pour garantir que, en moyenne au cours des ans, le soleil est au méridien de Greenwich à 12:00:00 UTC à 0.9 seconde près.
UTC est donc le successeur du temps moyen de Greenwich, GMT, qui était utilisé quand le jour solaire moyen fournissait l'unité de temps.
I-D. Heure légale et heure locale▲
Selon la loi du 9 mars 1911 en vigueur jusqu'en 1978, l'heure légale en France était l'heure du temps moyen de Paris retardée de 9 minutes 21 secondes. Cette définition voulait signifier en fait que l'heure en France était le temps universel.
La loi de 1911 a été remplacée par le décret du 9 août 1978 qui stipule que « le temps légal est obtenu en ajoutant ou en retranchant un nombre entier d'heures au temps universel coordonné ». Un décret fixe ce nombre pour chaque partie du territoire de la République française en fonction des fuseaux horaires. Il peut l'accroître ou le diminuer pendant une partie de l'année.
Ce nouveau décret prévoit donc l'usage d'une heure d'été, apparue pour la première fois en 1916.
I-E. Les fuseaux horaires▲
Chaque pays va donc définir son heure par l'écart au temps universel.
Cet écart étant déterminé de façon à ce que l'heure adoptée respecte le cycle journalier lié au lever du soleil, au midi, et au coucher du soleil. Cependant, pour faciliter les changements d'heure pour les voyageurs, les accords internationaux prévoient d'adopter un écart au temps universel égal à un nombre entier d'heures.
Pour cela, on définit 24 zones autour du globe appelées « fuseaux horaires ».
Chaque pays se rattache ainsi au fuseau le mieux adapté et définit son heure légale ou standard comme Temps Universel (TU) plus ou moins n heures (où n est un nombre entier). Cela ne l'empêche pas d'ajouter ou de retrancher une heure pour définir une heure d'été ou autre.
Les pays très étendus en longitude adoptent plusieurs heures légales.
Par exemple, aux États-Unis, il y a 7 heures légales : Atlantique, Est, Central, Montagne, Ouest, Alaska et Hawaï.
Ces heures légales possèdent deux variantes : l'heure standard applicable en hiver et l'heure « de la lumière du jour » (Daylight Time) qui correspond à notre heure d'été puisqu'on l'applique en été en ajoutant une heure à l'heure standard.
L'existence de fuseaux horaires va entraîner l'existence d'une « ligne de changement de date ».
Examinons en effet l'écart des heures locales au temps universel. En allant vers l'est, le soleil va se lever plus tôt et donc, pour obtenir les heures locales on va ajouter une heure, puis deux, puis trois au temps universel en se déplaçant vers l'est. En allant vers l'ouest ce sera le contraire : on retirera des heures au temps universel pour que midi reste à 12 heures…
En effet, s'il est midi en France, les pays situés à l'est de la France sur une même latitude verront le soleil vers la France, c'est-à-dire vers l'ouest, c'est donc que ce sera l'après-midi et qu'il sera plus tard qu'en France et qu'on ajoutera une ou plusieurs heures à l'heure française pour obtenir l'heure locale.
Donc en allant vers l'est on ajoute des heures : on arrive à la ligne de changement de date quand on a ajouté douze heures.
S'il est midi en temps universel, il sera minuit le soir du même jour sur le dernier fuseau vers l'est que l'on notera FE. En allant vers l'ouest, on retranchera des heures et il sera 0 heure du même jour en arrivant sur le dernier fuseau vers l'ouest que l'on notera FO. Les deux fuseaux concernés sont en fait côte à côte et une heure plus tard, il sera 1 heure du même jour sur le fuseau FO et une heure du lendemain sur le fuseau FE qui vient de passer minuit. Le passage de la ligne de changement de date fait donc effectivement passer d'un jour à l'autre à une même heure ou plutôt à un même moment de la journée. Notons cependant que tout le monde est à la même heure et à la même date en temps universel, ce qui permet de s'y retrouver.
On trouvera ci-dessous la répartition des heures légales selon les fuseaux horaires sur tous les continents.
Remarquons que certains territoires comme le Groenland ou l'Antarctique n'ont pas d'heure légale propre : le Temps Universel y est donc utilisé.
Remarquons aussi que tous les pays n'ont pas adopté un décalage d'un nombre entier d'heures avec le Temps Universel comme l'Inde qui a adopté 5h30.
Que faut-il retenir de tout cela ?
En fait, dans le cadre du développement d'applications, il est important de se souvenir que :
- nous sommes soumis à l'heure UTC (et non GMT) ;
- en hiver, l'heure locale répond à l'équation suivante :
Heure UTC + décalage horaire (Heure UTC + 1h00 en France) ; - en été, l'heure locale répond à une équation prenant en compte l'heure d'été :
Heure UTC + Décalage horaire + Décalage heure d'été (Heure UTC + 2h00 en France).
En développement, il peut être intéressant de pouvoir mettre à jour l'horloge interne d'un ordinateur en fonction de l'heure internationale, l'heure UTC.
Aussi, nous allons maintenant nous intéresser aux protocoles permettant l'interrogation des serveurs de temps disponibles sur Internet.