Epoch

De Wikipédia, l'encyclopédie libre

L'epoch (de l'anglais époque ou ère) représente la date initiale à partir de laquelle est mesuré le temps par les systèmes d'exploitation. Certains logiciels utilisent une epoch différente de leur système d'exploitation, ce qui peut conduire à des bugs.

Principe

Résumé
Contexte

Cette date varie selon les systèmes d'exploitation ou les logiciels, par exemple :

Davantage d’informations Date de démarrage de l'époque, Usages principaux ...
Date de démarrage de l'époqueUsages principauxRaison de sélection
0 janvier 0[note 1]MATLAB[1]
1er janvier 1[note 1]Microsoft .NET[2],[3], Go[4], REXX[5], Rata Die[6]Common Era, ISO 2014[7], RFC 3339[8][9]
15 octobre 1582UUID version 1La date de bascule du calendrier grégorien[10]
1er janvier 1601NTFS, COBOL, Win32/Win641601 était la première année des cycles de 400 ans du calendrier grégorien à l'époque où Windows NT a été codé[11].
31 décembre 1840MUMPS1841 une année non bissextile avant la naissance du plus vieux citoyen américain vivant au moment du codage de ce langage de programmation[12].
17 novembre 1858VMS, United States Naval Observatory, DVB SI 16-bit day stamps, other astronomy-related computations[13]Ce jour à 00:00:00 UT est le point de démarrage du calendrier julien modifié (MJD) equivalent au jour julien 2400000.5[14]
30 décembre 1899Microsoft COM DATE, Object Pascal, LibreOffice Calc, Google Sheets[15]Valeur technique interne à Excel pour assurer la compatibilité avec Lotus 1-2-3[16].
31 décembre 1899Microsoft C/C++ 7.0[17]Un écart dans la dernière version non "visual" de Microsoft C/C++ qui a été finalement annulé.
0 janvier 1900Microsoft Excel[16], Lotus 1-2-3[18]Alors que le 0 janvier 1900 devrait être l'équivalent du 31 décembre 1899, ces systèmes n'autorisent pas cette date à cause d'un bug plaçant 1900 comme une année bissextile.
1er janvier 1900Network Time Protocol, IBM CICS, Mathematica, RISC OS, VME, Common Lisp, Michigan Terminal System, MVS
1er janvier 1904LabVIEW, Apple Inc.'s classic Mac OS, JMP Scripting Language, Palm OS, MP4, Microsoft Excel (optionally)[19], IGOR Pro1904 est la première année bissextile du XXe siècle[20].
1er janvier 1958TAI
1er janvier 1960 SAS System[21]
31 décembre 1967Pick OS et variantes (jBASE, Universe, Unidata, Revelation, Reality)Choisi de manière que (date mod 7) 0=Dimanche, 1=Lundi, 2=Mardi, 3=Mercredi, 4=Jeudi, 5=Vendredi, et 6=Samedi[22].
1er janvier 1970Unix Epoch connu également comme POSIX time, utilisé par Unix et les systèmes basés sur Unix (Linux, macOS), et la plupart des langages de programmation comme les implémentations du C/C++[23], Java, JavaScript, Perl, PHP, Python, Ruby, TCL, ActionScript. Utilisé également par PTP.
1er janvier 1978AmigaOS[24].[note 2] The Commodore Amiga hardware systems were introduced between 1985 and 1994. Latest OS version 4.1 (December 2016). AROS, MorphOS.
1er janvier 1980Les systèmes de fichiers IBM BIOS INT 1Ah, DOS, OS/2, FAT12, FAT16, FAT32, exFATLe IBM PC avec son BIOS tout comme 86-DOS, MS-DOS et PC DOS avec leur système de fichier FAT12 ont été développés et introduits entre 1980 et 1981.
6 janvier 1980Qualcomm BREW, GPS, ATSC 32-bit time stampsLe système GPS se base sur les semaines (une semaine commençant un dimanche, selon le format américain) et le 6 janvier 1980 est le premier dimanche de l'année 1980[25],[26].
1er janvier 2000AppleSingle, AppleDouble[27], PostgreSQL[28],[note 3] ZigBee UTCTime[29]
1er janvier 2001Le framework Cocoa d'Apple2001 est l'année de publication de Mac OS X 10.0 (mais NSDate pour l'Enterprise Objects Framework (EOF) 1.0 d'Apple était développé in 1994).
Fermer

Le temps est mesuré en nombre d'unités de temps depuis cette date. L'unité de temps la plus courante est la seconde. Il arrive que l'unité ne soit pas spécifiée et que l'on parle de tick, qui est la plus petite unité de temps gérée par le système d'exploitation.

Dépassement

Des problèmes sont susceptibles d'arriver lorsque la date dépasse la valeur maximale autorisée pour le type de donnée utilisée pour la stocker. Par exemple, sous UNIX, les dates sont exprimées en nombre de secondes depuis l'epoch et stockées dans des entiers. Quand ceux-ci sont stockés dans des entiers signés de 32 bits, des problèmes risquent donc de survenir à partir du 19 janvier 2038. Il existe le même problème sous Windows à partir de la date du 6 février 2036.

La plupart des ordinateurs peuvent actuellement stocker les entiers non signés sur 64 bits (et non plus 32 bits), donc chaque développeur (à condition de reprogrammer la mise à jour du principe de stockage de la date dans chaque logiciel) peut reculer la date du dépassement de l'epoch bien au-delà de 2038 : le nombre stockable maximum de ticks devient 2⁶⁴ = 18 446 744 073 709 551 616 unités de temps du système d'exploitation : la nouvelle date butoir se situe à l'an 292 277 026 596 apr. J.-C. (soit environ 21 fois l'âge de l'univers) : le problème sera ainsi résolu pour notre ère.

Notes et références

Wikiwand - on

Seamless Wikipedia browsing. On steroids.