AccueilđŸ‡«đŸ‡·Chercher

Heure Unix

L'heure Unix ou heure Posix (aussi appelĂ©e Unix Timestamp) est une mesure du temps fondĂ©e sur le nombre de secondes Ă©coulĂ©es depuis le 00:00:00 UTC, hors secondes intercalaires. Elle est utilisĂ©e principalement dans les systĂšmes qui respectent la norme POSIX[1], dont les systĂšmes de type Unix, d'oĂč son nom. C'est la reprĂ©sentation POSIX du temps.

L'heure Unix actuelle[note 1]
1688568022 (rafraĂźchir)
(ISO 8601: 2023-07-05T14:40:22Z)

Heure POSIX

Ce graphe montre la différence DUT1 entre UT1 et UTC. Les segments verticaux correspondent à l'insertion de secondes intercalaires.

Associer un événement dans le temps à un nombre réel

Pour associer un Ă©vĂ©nement Ă  un nombre rĂ©el, il suffit d'utiliser des rĂ©fĂ©rences naturelles et universelles : par exemple, les pĂ©riodicitĂ©s de rotation de la Terre sur elle-mĂȘme, et autour du Soleil. Ces pĂ©riodicitĂ©s sont suffisantes pour Ă©tablir des calendriers, c'est-Ă -dire des relations entre des Ă©vĂ©nements et des dates, mĂȘme si quelques efforts sont nĂ©cessaires pour bien dĂ©finir les rĂ©fĂ©rences utilisĂ©es[2] (chaque pays a les siennes, toutes adoptĂ©es Ă  des instants diffĂ©rents) ; les dates de ces calendriers ne sont que des nombres exprimĂ©s dans un systĂšme de numĂ©ration un peu compliquĂ© qui a pour unitĂ©s le jour, la semaine, le mois, la saison, l'annĂ©e, etc., et l'heure Posix n'est qu'une rĂ©fĂ©rence parmi d'autres exprimĂ©e sous forme d'un simple nombre.

Principaux systÚmes de mesures utilisés

Voici les principaux systÚmes de mesure du temps qui ont été imaginés et utilisés jusqu'à nos jours[3] :

Sigle Signification DĂ©finition
GMT Temps moyen de Greenwich[4] Encore en usage dans certains pays pour des aspects légaux[5].

NĂ©anmoins la dĂ©finition de ce systĂšme de mesure est ambigĂŒe[4]. C'est la raison pour laquelle, en dehors de cet usage administratif, il est prĂ©fĂ©rable d'utiliser UTC.

UT Temps universel Ce systÚme définit le jour comme la durée moyenne de rotation de la Terre autour de son axe.

Cette dĂ©finition pose quelques difficultĂ©s car la vitesse de cette rotation n’est pas constante, elle diminue lentement sous l’effet des marĂ©es et, de plus, prĂ©sente des irrĂ©gularitĂ©s imprĂ©visibles : la durĂ©e des jours UT est trĂšs lĂ©gĂšrement supĂ©rieure, en moyenne, Ă  86 400 secondes (nombre de secondes dans 24h). L'Ă©cart est de l’ordre de la seconde sur une Ă  trois annĂ©es.

On distingue plusieurs versions de UT : UT0, UT1, UT1R, UT2. On se reportera à l'article « Temps universel » pour plus de détails.

TAI Temps atomique international Ce systĂšme est fondĂ© sur une dĂ©finition internationale de la seconde. Son Ă©talon est constituĂ© par plusieurs horloges atomiques rĂ©parties dans le monde. La mesure du temps dans ce systĂšme est strictement rĂ©guliĂšre Ă  la diffĂ©rence de la prĂ©cĂ©dente pour qui son Ă©talon n'a pas la mĂȘme rĂ©gularitĂ©. En consĂ©quence, TAI et UT s'Ă©loignent progressivement l'un de l'autre du fait du ralentissement du second.
  • Une diffĂ©rence de deux TAI permet de calculer un dĂ©lai Ă©coulĂ© de façon exacte.
UTC Temps universel coordonné

Ce systÚme est adopté comme base du temps civil international par un grand nombre de pays. Le mot « coordonné » indique que :

  • la diffĂ©rence entre UTC et TAI est un nombre entier de secondes,
  • la diffĂ©rence entre UTC et UT1 n'est jamais plus grande que 0,9 seconde.

Autrement dit, UTC est identique au TAI (il en a la stabilitĂ© et l’exactitude) Ă  un nombre entier de secondes prĂšs[6], et les secondes intercalaires lui permettent de coller Ă  UT Ă  0,9 s prĂšs ; c'est ce que montre la figure ci-dessus[7].

  • Le respect de cet Ă©cart maximal entre UT et UTC est garanti par l'« International Earth Rotation and Reference Systems Service » (IERS), fondĂ© en particulier Ă  l’Observatoire de Paris, qui dĂ©cide[8] de rajouter (ou supprimer) des secondes intercalaires chaque fois qu'UTC et UT s’écartent trop l’un de l’autre.
  • Une diffĂ©rence de deux heures UTC permet de calculer un dĂ©lai Ă©coulĂ© de façon exacte tant que les deux Ă©vĂ©nements ne sont pas Ă  cheval sur une seconde intercalaire (voir ci-dessous la probabilitĂ© et l'amplitude de l'erreur). Pour calculer un dĂ©lai exact en toutes circonstances, il faut tenir compte des secondes intercalaires[9].

Choix d'une origine du temps

Pour mesurer le temps, il faut choisir une origine :

  • L'origine de l'heure POSIX a Ă©tĂ© choisie comme Ă©tant le 00:00:00 UTC[10], cette date correspond Ă  l'heure 0 de Posix, elle est appelĂ©e l'epoch Posix (et Ă©galement epoch Unix).

Évolution du temps

Il faut indiquer comment Ă©volue ce nombre en fonction du temps qui passe :

  • Pour chaque seconde Ă©coulĂ©e, l'heure POSIX s'accroĂźt d'exactement d'une unitĂ© et ce de façon invariable tout au long de l'annĂ©e, sauf lorsque l'IERS dĂ©cide[8] d'ajouter (ou de supprimer) une seconde intercalaire ; le tableau ci-dessous illustre le cas de l'ajout de la seconde intercalaire qui a eu lieu le Ă  minuit[11].
Tableau 1 : L'heure Posix au passage de minuit lorsqu'une seconde intercalaire fut ajoutée le à minuit
# TAI UTC TAI - UTC Heure Posix
1 2009-01-01T00:00:30 2008-12-31T23:59:57 33 1 230 767 997
2 2009-01-01T00:00:31 2008-12-31T23:59:58 33 1 230 767 998
3 2009-01-01T00:00:32 2008-12-31T23:59:59 33 1 230 767 999
4 2009-01-01T00:00:33 2008-12-31T23:59:60 33 1 230 768 000 ajout d'une seconde intercalaire[12]
5 2009-01-01T00:00:34 2009-01-01T00:00:00 34 1 230 768 000
6 2009-01-01T00:00:35 2009-01-01T00:00:01 34 1 230 768 001
7 2009-01-01T00:00:36 2009-01-01T00:00:02 34 1 230 768 002

L'Heure Posix n'est pas une représentation linéaire du temps, il y a des anomalies[12], comme la ligne 5 du tableau ci-dessus.

Il n'y a pas correspondance bijective entre l'heure UTC et l'heure Posix ; ce dernier ne permet pas de représenter les secondes intercalaires présentes dans UTC, comme la ligne 4 du tableau ci-dessus : 2008-12-31T23:59:60 UTC.

Temps écoulé entre deux événements

Il ne faut pas mĂ©langer ces diffĂ©rentes rĂ©fĂ©rences (par exemple, l'an zĂ©ro d'un calendrier ne commence pas au mĂȘme instant que celui d'un autre) et Ă©galement parce que tous ces calendriers ont besoin de s'adapter aux pĂ©riodicitĂ©s non multiples les unes des autres, par exemple les annĂ©es bissextiles, ou bien les irrĂ©gularitĂ©s de ces pĂ©riodicitĂ©s. Ces adaptations compliquent un petit peu les calculs, en fonction de la prĂ©cision que l'on recherche ; par exemple, il s'est Ă©coulĂ© un an peut ĂȘtre une information suffisante ou bien il faudra tenir compte du caractĂšre bissextile de l'annĂ©e pour rĂ©pondre Ă  la mĂȘme question exprimĂ©e en nombre de jours. Cela veut dire qu'il faut conserver une mĂ©moire du passĂ©, la mĂ©moire de chaque seconde qui passe.

Dans la plupart des cas, une simple différence des heures Posix suffit, sauf si les deux événements sont à cheval sur une ou plusieurs secondes intercalaires. Pour calculer un délai exact en toutes circonstances, il faut tenir compte des secondes intercalaires.

Toutefois, l'occurrence des secondes intercalaires Ă©tant faible[13], la probabilitĂ© de commettre une telle erreur est donc faible ; et si malgrĂ© tout le cas se produit, alors l'amplitude de l'erreur est peut-ĂȘtre faible[14], et il n'y a dans ce cas pas besoin de se prĂ©occuper de ces secondes intercalaires ; le tableau ci-dessous montre diffĂ©rents exemples.

La méthode pour compléter une ligne de ce tableau est la suivante :

  • si le dĂ©lai calculĂ© entre les deux Ă©vĂ©nements d'intĂ©rĂȘt est de l'ordre de M secondes, alors la probabilitĂ© qu'une seconde intercalaire soit dans cet intervalle est de M sur le nombre total N de secondes pendant une annĂ©e (c'est-Ă -dire en prenant pour hypothĂšse qu'une seconde intercalaire est ajoutĂ©e chaque annĂ©e),
  • une annĂ©e compte N = 365 x 24 x 3 600 = 31 536 000 secondes,
  • la probabilitĂ© de commettre une erreur 1/M est donc de M/N = Mx3,2 × 10-8.

L'application de cette méthode pour des délais M=10, 100, 1000 donne le tableau suivant :

Tableau 2 : Erreur commise et probabilité de commettre l'erreur
Délai à mesurer (M) Probabilité d'erreur Amplitude de l'erreur
10 s3,2 × 10-710 %
100 s3,2 × 10-61 %
1 000 s3,2 × 10-50,1 %

À la limite, si le dĂ©lai Ă  calculer entre les deux Ă©vĂ©nements d'intĂ©rĂȘt est d'un an, alors la probabilitĂ© est de 100 % de commettre une erreur de 3,2 × 10-8.

La probabilitĂ© de commettre une erreur donnĂ©e et l'amplitude de cette erreur varie inversement l'une de l'autre ; une autre façon de prĂ©senter les choses pourrait ĂȘtre de dire :

  • si le dĂ©lai calculĂ© est petit, alors l'erreur peut ĂȘtre forte, mais la probabilitĂ© de la commettre est faible,
  • si le dĂ©lai calculĂ© est grand, alors la probabilitĂ© de commettre l'erreur est forte, mais l'erreur est faible.

Si ce couple (probabilité de commettre une erreur / amplitude de l'erreur) est inacceptable, ou bien si on ne sait pas en évaluer l'impact, alors il est sûrement nécessaire de se poser la question de savoir pourquoi on utilise UTC et quel est le besoin de précision nécessaire, ou bien de prévoir l'usage de tables à mettre à jour dÚs que l'insertion/retrait d'une seconde intercalaire est programmé[8] - [15].

Conversion de l'heure UTC en heure Posix

Hormis les trÚs rares anomalies mentionnées précédemment à propos des secondes intercalaires, il est aisé de convertir une heure UTC en une heure Posix et inversement.

Exemple : Quelle est l'heure Posix en tout début de la journée du (ligne 5 du tableau 1 ci-dessus) :

  • de l'Ă©poque Posix au , 39 annĂ©es se sont Ă©coulĂ©es dont 10 bissextiles[16] (voir tableau d’aide ci-dessous),
  • soit 14 245 jours de 24x3 600=86 400 secondes chacun,
  • soit 1 230 768 000 secondes Ă©coulĂ©es depuis l'Ă©poque Unix, hors secondes intercalaires.
Tableau 3 : Calcul du nombre de jours écoulés entre et
Nombre de jours écoulés
1 9701 9711 9721 9733*365+366 = 1461
1 9741 9751 9761 9771461
1 9781 9791 9801 9811461
1 9821 9831 9841 9851461
1 9861 9871 9881 9891461
1 9901 9911 9921 9931461
1 9941 9951 9961 9971461
1 9981 9992 0002 0011461
2 0022 0032 0042 0051461
2 0062 0072 0082*365+366 = 1096
14 245

Il existe également des outils[17] qui réalisent ces calculs trÚs simplement, comme ce « shell script » pour convertir un nombre de secondes depuis l'époque Posix en une date :

        #!/bin/sh
        # convertir un nombre de secondes depuis l'Ă©poque Posix 
        #           en date
        # exemple: date -u -R --date "1970-01-01 1230768000 seconds"
        date -u -R --date "1970-01-01 $* seconds" 

Conversion d'une heure Posix en heure UTC

Le calcul inverse ne prĂ©sente pas de difficultĂ©, et de la mĂȘme façon il existe des outils[17] qui rĂ©alisent ces calculs trĂšs simplement, comme ce script bash pour convertir une date en un nombre de secondes depuis l'Ă©poque Posix :

        #!/bin/sh
        # convertir une date (attention au format de l'argument)
        #           en nombre de secondes depuis l'Ă©poque Posix
        # exemple: date --date "2009-01-01 00:00:00+00:00" "+%s"
        date --date "$*" "+%s"

Heure UNIX

Nombre limité d'années qu'un systÚme UNIX particulier peut représenter

La mĂ©thode plus courante pour lire l'heure sous Unix, est l'appel Ă  la fonction suivante qui retourne une valeur numĂ©rique de type "time_t​".

        time_t time(NULL);

Ce type time_t est couramment utilisé pour manipuler l'heure UNIX, malheureusement la norme POSIX n'en précise pas (clairement) la taille :

  • si c'est une machine 32 bits, time_t sera vraisemblablement un entier signĂ© 32 bits. Ce compteur permet de gĂ©rer une pĂ©riode totale de 232 secondes, soit Ă  peu prĂšs 136 annĂ©es. La date la plus reculĂ©e est , et la plus avancĂ©e est .
Illustration du phénomÚne de débordement.
Lorsque cette date la plus avancée sera franchie, cette représentation va déborder (en), c'est-à-dire qu'elle ne sera plus capable de continuer à représenter l'heure Unix correctement. Ce problÚme est appelé le bug de l'an 2038. L'image animée ci-contre illustre le phénomÚne de débordement.
Heure Unix UTC
date la plus reculĂ©e : -231−2 147 483 6481901-12-13 T 20:45:52
Ă©poque Unix : 001970-01-01 T 00:00:00
date la plus avancĂ©e : 231-12 147 483 6472038-01-19 T 03:14:07
  • si c'est une machine 64 bits, time t sera vraisemblablement un entier signĂ© 64 bits ; les limites seront alors supĂ©rieures Ă  292 milliards d'annĂ©es soit beaucoup plus que l'Ăąge de notre planĂšte ou son espĂ©rance de vie.

Cette impossibilitĂ© de reprĂ©sentation ne met pas forcĂ©ment en cause le fonctionnement de la machine elle-mĂȘme, c'est-Ă -dire le fonctionnement de son systĂšme d'exploitation[18] mais le fonctionnement de ses applications et son interopĂ©rabilitĂ© avec les autres machines. En effet, il n'est pas suffisant qu'une machine sache localement gĂ©rer cette limite, mais il faut Ă©galement que toutes les machines qui lui sont connectĂ©es[19] soient capables de gĂ©rer cette limite et ce de la mĂȘme façon.

Plusieurs cas peuvent se présenter :

  1. soit on a affaire Ă  un parc de machines bien maitrisĂ©es, c'est le cas par exemple des systĂšmes embarquĂ©s. Dans ce cas, une solution pour gĂ©rer cette frontiĂšre peut ĂȘtre de s'assurer que le parc de machines n'utilise que des applications dĂ©veloppĂ©es spĂ©cialement pour ĂȘtre robustes face Ă  cette situation[20] - [21],
  2. soit on a affaire à un parc de machines trÚs hétérogÚnes et non maitrisées, c'est le cas par exemple des machines du monde entier qui sont connectées sur internet. Dans ce cas, une solution serait de généraliser le codage de cette heure Unix sur 64 bits à toutes les machines, y compris celles en 32 bits. On peut également raisonnablement espérer que toutes les machines seront au moins 64 bits à l'aube de 2038.

Utilisation d'une résolution inférieure à la seconde

Les systÚmes Unix entretiennent en général un compteur dont la résolution est plus fine que la seconde. Cette heure est accessible par un appel à la fonction suivante :

        int gettimeofday(struct timeval *tv, NULL);

La valeur numĂ©rique retournĂ©e par cette fonction est mĂ©morisĂ©e dans la variable « struct timeval *tv​ » dĂ©finie de la façon suivante :

        struct timeval {
                int    tv_sec;     /* secondes */
                int    tv_usec;    /* microsecondes de 0 Ă  999999 */
        };

L'emploi de cette rĂ©solution infĂ©rieure Ă  une seconde amĂšne la question de savoir ce qui se passe lorsqu'une seconde intercalaire est ajoutĂ©e ou retranchĂ©e ? Il semblerait que ce point soit Ă  la charge du systĂšme d'exploitation[22]. En l'absence de spĂ©cification claire, plusieurs scĂ©narios sont donc possibles en fonction du systĂšme d'exploitation considĂ©rĂ©[23] - [24]. Les trois exemples ci-dessous exposent les trois catĂ©gories de cas qui semblent les plus reprĂ©sentatives, ils ne traitent que l'aspect insertion d'une seconde intercalaire mais ils pourraient facilement ĂȘtre adaptĂ©s au cas de la suppression :

  • l'horloge systĂšme peut ĂȘtre ajustĂ©e brutalement d'une seconde, ce qui donnera l'impression d'un retour en arriĂšre[25].
Heure ajustée brutalement
# UTC tv_sec tv_usec
42008-12-31T23:59:60.0001 230 768 0000
2008-12-31T23:59:60.5001 230 768 000500 000
52009-01-01T00:00:00.0001 230 768 0000heure ajustĂ©e brutalement
2009-01-01T00:00:00.5001 230 768 000500 000
62009-01-01T00:00:01.0001 230 768 0010
  • l'horloge systĂšme peut ĂȘtre maintenue constante pendant une seconde pendant l'insertion de la seconde intercalaire. Cela signifie que l'heure ne reviendra pas en arriĂšre mais sera figĂ©e, en consĂ©quence le possible impact sur les applications devrait ĂȘtre en principe moindre[25].
Heure figée
# UTC tv_sec tv_usec
42008-12-31T23:59:60.0001 230 768 0000
2008-12-31T23:59:60.5001 230 768 0000heure figĂ©e
52009-01-01T00:00:00.0001 230 768 0000heure figĂ©e
2009-01-01T00:00:00.5001 230 768 000500 000
62009-01-01T00:00:01.0001 230 768 0010
  • l'horloge systĂšme peut ĂȘtre ralentie pour compenser l'insertion de la seconde intercalaire[25].
Heure ralentie
# UTC tv_sec tv_usec
42008-12-31T23:59:60.0001 230 768 0000
2008-12-31T23:59:60.5001 230 768 000250 000heure ralentie
52009-01-01T00:00:00.0001 230 768 000500 000heure ralentie
2009-01-01T00:00:00.5001 230 768 000750 000heure ralentie
62009-01-01T00:00:01.0001 230 768 0010

Utilisation du TAI

L'idée d'utiliser le temps atomique international a déjà été proposée et défendue par de nombreuses personnes[26], mais ce n'est pas le sens qui a été donné par l'histoire, le choix retenu fut celui qui aujourd'hui est figé par la norme POSIX.

Daniel J. Bernstein a Ă©galement Ă©crit des articles et logiciels[21] pour l'utilisation de TAI sur des systĂšmes de type UNIX.

Gigaseconde Unix

La gigaseconde Unix désigne l'heure Unix 109, qui représente le .

Notes et références

  1. l'heure Unix au moment oĂč cette page fut gĂ©nĂ©rĂ©e
  1. POSIX est une marque déposée de « IEEE » ; UNIX est une marque déposée de « The Open Group ».
  2. On pourra également consulter (en) Epoch time vs. time of day pour une discussion sur certains aspects légaux, et également les autres pages de ce site ; en particulier (en) Plots of deltas between time scales pour comparer les écarts entre différentes références.
  3. Il ne faudrait pas penser que cette liste est aussi courte, on pourra consulter (en) Time Scales pour une liste plus exhaustive et précise.
  4. L’utilisation de l’ancienne appellation standard « temps moyen de Greenwich » (GMT, de l’anglais « Greenwich Mean Time ») est dĂ©sormais dĂ©conseillĂ©e parce que sa dĂ©finition est ambiguĂ«, au contraire d’UTC, qui doit lui ĂȘtre prĂ©fĂ©rĂ©e. Ce sigle s’était imposĂ© par la prĂ©pondĂ©rance de la marine britannique durant le XIXe siĂšcle et fut plus tard rebaptisĂ© Temps universel (UT, de l’anglais Universal Time). Comme le temps UTC est le temps civil du mĂ©ridien origine des longitudes Ă  Greenwich, certains ont tentĂ© de prolonger l’usage de GMT en le traduisant dĂ©sormais par « Greenwich Meridian Time » mais ce glissement sĂ©mantique n’a aucune valeur officielle.
  5. Voir l'article (en) Greenwich Mean Time| l'utilisation de GMT dans la législation.
  6. Dans l’échelle UTC, les secondes et tous les autres sous-multiples (milliseconde, microseconde, etc.) sont de durĂ©e constante, mais la minute et toutes les unitĂ©s supĂ©rieures (heure, jour, semaine, etc.) sont de durĂ©e variable. L’ajout ou la suppression de ces secondes intercalaires est rare, de l’ordre d'une seconde sur une Ă  trois annĂ©es. La plupart des jours UTC comportent 86 400 secondes, la plupart des heures 3 600 secondes, et la plupart des minutes 60 secondes mais certains peuvent comporter respectivement 86 401 s ou bien 86 399 s, 3 601 s ou bien 3 599 s et 61 s ou bien 59 s.
  7. Si on traçait sur un graphique similaire la diffĂ©rence entre UT1 et TAI, on verrait UT1 et TAI s'Ă©loigner progressivement l'un de l'autre au rythme du ralentissement de la rotation de la Terre ; de mĂȘme, on verrait UTC et TAI s'Ă©loigner l'un de l'autre par bons successifs au rythme de l'ajout/suppression des secondes intercalaires.
  8. Cet ajout (ou suppression) a lieu soit la fin de la derniĂšre minute du dernier jour du mois prĂ©cĂ©dant le 1er juillet ou le 1er janvier, exceptionnellement cela peut ĂȘtre le 1er avril ou le 1er octobre, et est annoncĂ© 6 mois Ă  l'avance par l'IERS via son (en) BULLETIN C - Product metadata. En mars 2009, il n’y a jamais eu de suppression de secondes intercalaires, et vraisemblablement il n'y en aura jamais compte tenu du fait que la vitesse de rotation de la terre diminue inexorablement. Il pourra ĂȘtre intĂ©ressant de consulter les autres bulletins de l'IERS (en) IERS Bulletins.
  9. Les secondes intercalaires futures sont prĂ©vues avec une anticipation de six mois au maximum, c'est le rythme Ă  lequel l'IERS diffuse son bulletin de prĂ©vision. Pour les valeurs passĂ©es on peut faire usage d’une table.
  10. Il y a une difficultĂ© avec cette dĂ©finition, dans le sens qu'UTC n'existait pas avant 1972 ; cette difficultĂ© est contournĂ©e en utilisant des nombres nĂ©gatifs pour une date antĂ©rieure Ă  l'Ă©poque ; ainsi 04-10-1957T00:00:00Z, 4 472 jours avant l'Ă©poque, est reprĂ©sentĂ© par l'heure POSIX −4 472 × 86 400 = −386 380 800.
  11. Voir Leap Seconds.
  12. Un PC ne va pas spontanĂ©ment ralentir/accĂ©lĂ©rer son compteur interne par lui-mĂȘme ; l'ajustement peut ĂȘtre fait par l'utilisateur ou bien plus vraisemblablement, s'il est connectĂ© Ă  internet, de façon automatique et quasi-silencieuse par un service d'horloge, gĂ©nĂ©ralement il s'agit de NTP.
  13. Le graphique ci-dessus montre que la période d'insertion d'une seconde intercalaire est entre une et trois années.
  14. Plus le délai est grand et plus l'impact d'une seconde d'erreur est faible et inversement.
  15. Pour que cette derniĂšre mĂ©thode soit utilisable Ă  bord d'un systĂšme embarquĂ©, cela nĂ©cessiterait la mise en Ɠuvre d'une mise Ă  jour automatique et en temps rĂ©el de la table.
  16. Une annĂ©es est bissextile si elle est multiple de 4, mais non multiple de 100 sauf si multiple de 400 (exemple, 2000 Ă©tait bissextile). L’application de cette rĂšgle montre qu’il est suffisant de tester la divisibilitĂ© par 4 entre 1901 et 2099.
  17. Voir par exemple ce (en) Convertisseur secondes / date.
  18. Par exemple, le systÚme d'exploitation Linux continue à fonctionner au-delà de cette date la plus avancée.
  19. Il faut comprendre le mot connecté au sens large, cela concerne la connexion ethernet, mais également l'échange de fichiers via des disques amovibles pour lesquels la datation des fichiers est un point important, pour les sauvegardes par exemple.
  20. On pourra consulter avec intĂ©rĂȘt le (en) site web consacrĂ© Ă  la dissĂ©mination de l'information Ă  propos du bug de l'annĂ©e 2038 qui fournit une solution pour fonctionner jusqu'en 2106, aussi bien sur les machines 32 bits que 64 bits.
  21. On pourra Ă©galement considĂ©rer l'usage du TAI et consulter avec intĂ©rĂȘt les articles Ă©crit par D. J. Bernstein Ă  ce sujet :
  22. Voir (en) The NTP Timescale and Leap Seconds.
  23. Un article (en) Leap Second Handling by Operating Systems expose 3 cas possibles. Il est dit : « Linux kernels and most other Unix-like systems care about the leap seconds and handle them correctly. » mais sans réellement préciser ce que correctly signifie au juste.
  24. Voir (en) Five different ways to handle leap seconds with NTP
  25. Comme exemple pour Ă©valuer l'impact de ces diffĂ©rents scĂ©narios, on pourrait imaginer un instrument de mesure de vitesse qui mesure le dĂ©lai Ă©coulĂ© pour une distance parcourue donnĂ©e : dans le 3e cas, la vitesse sera surestimĂ©e, au maximum dans un rapport 2, et dans les deux premiers cas d'un rapport qui pourra ĂȘtre infini. On se rappellera tout de mĂȘme que la probabilitĂ© d'occurrence d'un tel phĂ©nomĂšne est rarissime, voir plus haut
  26. Voir en particulier (en) History of IEEE P1003.1 POSIX time by Landon Curt Noll (en).


Voir aussi

Articles connexes

Liens externes

Bibliographie

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.