« Epoch » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
Csar62 (discuter | contributions)
m Révocation des modifications de 216.119.21.165 (retour à la dernière version de Herr Satz)
Balises : Révocation Liens d’homonymie
 
(39 versions intermédiaires par 32 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
{{traduction incomplète}}

{{Voir homonymes|Epoch (homonymie)}}
{{Voir homonymes|Epoch (homonymie)}}
L''''epoch''' (de l'[[anglais]] ''époque'' ou ''ère'') représente la date initiale à partir de laquelle est mesuré le [[temps]] par les [[Système d'exploitation|systèmes d'exploitation]]. Certains logiciels utilisent une epoch différente de leur système d'exploitation, ce qui peut conduire à des bugs.
{{ébauche|informatique}}

L''''epoch''' (de l'[[anglais]] ''époque'' ou ''ère'') représente la date initiale à partir de laquelle est mesuré le [[temps]] par les [[Système d'exploitation|systèmes d'exploitation]].

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


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


{| class="wikitable"
{| class="wikitable"
Ligne 16 : Ligne 11 :
| 0 janvier [[1 av. J.-C.|0]]{{efn |name="proleptic-gregorian"|[[wikt:proleptic|Proleptic]] Gregorian calendar}} || [[MATLAB]]<ref>[http://www.mathworks.com/help/matlab/ref/datenum.html "datenum"], MathWorks, accessed July 7, 2015.</ref> ||
| 0 janvier [[1 av. J.-C.|0]]{{efn |name="proleptic-gregorian"|[[wikt:proleptic|Proleptic]] Gregorian calendar}} || [[MATLAB]]<ref>[http://www.mathworks.com/help/matlab/ref/datenum.html "datenum"], MathWorks, accessed July 7, 2015.</ref> ||
|-
|-
|{{1er}} janvier [[1]]{{efn |name="proleptic-gregorian"}} || [[Microsoft .NET]]<ref>{{lien web|url=https://msdn.microsoft.com/en-us/library/system.globalization.gregoriancalendar(v=vs.110).aspx|titre=GregorianCalendar Class|passage=Remarks|consulté le=26 avril 2015|éditeur=[[Microsoft Developer Network|MSDN]]}}</ref>{{,}}<ref>"[https://msdn.microsoft.com/en-us/library/system.datetimeoffset%28v=vs.110%29.aspx DateTimeOffset Structure]" (.NET Framework 4.5), [[Microsoft Developer Network|MSDN]], 2015.</ref>, [[Go (programming language)|Go]]<ref>{{lien web|url=http://golang.org/pkg/time/#Time|titre=Package time|consulté le=26 avril 2015|éditeur=golang.org}}</ref>, [[REXX]]<ref>{{lien web|url=http://www-01.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.ikja300/date.htm |titre=Date—z/OS TSO/E REXX Reference |id=SA32-0972-00 |éditeur=IBM |website=IBM.com |date=2014}}</ref>, [[Rata Die]]<ref name="the_book">{{ouvrage|nom2=Reingold |prénom2=Edward |author-link2=Edward Reingold |nom1=Dershowitz |prénom1=Nachum |author-link1=Nachum Dershowitz |date=2008 |edition=3rd |titre=Calendrical Calculations |éditeur=Cambridge University Press |chapter=The Gregorian calendar |isbn=978-0-521-70238-6 }}</ref> || [[Common Era]], [[ISO 2014]]<ref>{{ouvrage|prénom=M. F. |nom=Cowlishaw |lien auteur=Mike Cowlishaw |titre=The Rexx Language: A Practical Approach to Programming |éditeur=Prentice Hall |année=1990 |edition=2nd |pages=93, 177 |isbn=0-13-780651-5}}</ref>, {{RFC|3339}}<ref>{{lien web|url=http://golang.org/doc/go1#time |titre=Go 1 Release Notes—Major changes to the library—Time |éditeur=golang.org |date=28 mars 2012|consulté le=26 avril 2015}}</ref>
|{{1er}} janvier [[1]]{{efn |name="proleptic-gregorian"}} || [[Microsoft .NET]]<ref>{{lien web|url=https://msdn.microsoft.com/en-us/library/system.globalization.gregoriancalendar(v=vs.110).aspx|titre=GregorianCalendar Class|passage=Remarks|consulté le=26 avril 2015|éditeur=[[Microsoft Developer Network|MSDN]]}}</ref>{{,}}<ref>"[https://msdn.microsoft.com/en-us/library/system.datetimeoffset%28v=vs.110%29.aspx DateTimeOffset Structure]" (.NET Framework 4.5), [[Microsoft Developer Network|MSDN]], 2015.</ref>, [[Go (langage)|Go]]<ref>{{lien web|url=http://golang.org/pkg/time/#Time|titre=Package time|consulté le=26 avril 2015|éditeur=golang.org}}</ref>, [[REXX]]<ref>{{lien web|url=http://www-01.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.ikja300/date.htm |titre=Date—z/OS TSO/E REXX Reference |id=SA32-0972-00 |éditeur=IBM |website=IBM.com |date=2014}}</ref>, [[Rata Die]]<ref name="the_book">{{Ouvrage|prénom1=Nachum|nom1=Dershowitz|lien auteur1=Edward Reingold|prénom2=Edward|nom2=Reingold|titre=Calendrical Calculations|éditeur=Cambridge University Press|année=2008|numéro d'édition=3rd|pages totales=512|isbn=978-0-521-70238-6|titre chapitre=The Gregorian calendar}}</ref> || [[Common Era]], [[ISO 2014]]<ref>{{Ouvrage|prénom1=M. F.|nom1=Cowlishaw|lien auteur1=Mike Cowlishaw|titre=The Rexx Language|sous-titre=A Practical Approach to Programming|éditeur=Prentice Hall|année=1990|numéro d'édition=2nd|pages totales=203|pages=93, 177|isbn=0-13-780651-5}}</ref>, {{RFC|3339}}<ref>{{lien web|url=http://golang.org/doc/go1#time |titre=Go 1 Release Notes—Major changes to the library—Time |éditeur=golang.org |date=28 mars 2012|consulté le=26 avril 2015}}</ref>
|-
|-
|15 octobre 1582 || [[Universally unique identifier|UUID version 1]] || La date de bascule du calendrier grégorien<ref>{{lien web|url=https://tools.ietf.org/html/rfc4122 |titre={{RFC|4122}}: Proposed Standard: A Universally Unique IDentifier (UUID) URN Namespace |nom1=Leach |prénom1=P. |nom2=Mealling |prénom2=M. |nom3=Salz |prénom3=R. |date=juillet 2005 |website=tools.ietf.org |éditeur=Internet Engineering Task Force}}</ref>.
|15 octobre 1582 || [[Universally Unique Identifier|UUID version 1]] || La date de bascule du calendrier grégorien<ref>{{lien web|url=https://tools.ietf.org/html/rfc4122 |titre=RFC 4122: Proposed Standard: A Universally Unique IDentifier (UUID) URN Namespace |nom1=Leach |prénom1=P. |nom2=Mealling |prénom2=M. |nom3=Salz |prénom3=R. |date=juillet 2005 |website=tools.ietf.org |éditeur=Internet Engineering Task Force}}</ref>
|-
|-
|{{1er}} janvier 1601 || [[NTFS]], [[COBOL]], [[Win32]]/[[Win64]] || 1601 était la première année des cylcles de {{nombre|400|ans}} du calendrier grégorien à l'époque où Windows NT a été codé<ref>{{lien web|url=http://blogs.msdn.com/oldnewthing/archive/2009/03/06/9461176.aspx |website=The Old New Thing |éditeur=MSDN Blogs |titre=Why is the Win32 epoch January 1, 1601? |date=6 mars 2009|nom=Chen |prénom=Raymond}}</ref>.
|{{1er}} janvier 1601 || [[NTFS (Microsoft)|NTFS]], [[COBOL]], [[Win32]]/[[Win64]] || 1601 était la première année des cycles de {{nombre|400|ans}} du calendrier grégorien à l'époque où Windows NT a été codé<ref>{{lien web|url=https://devblogs.microsoft.com/oldnewthing/20090306-00/?p=18913|website=The Old New Thing |éditeur=MSDN Blogs |titre=Why is the Win32 epoch January 1, 1601? |date=6 mars 2009|nom=Chen |prénom=Raymond}}</ref>.
|-
|-
|31 décembre 1840 || [[MUMPS]] || 1841 une année non-bissextile avant la naissance du plus vieux citoyen américain vivant au moment du codage de ce langage de programmation<ref>{{lien web|url=https://www.vmth.ucdavis.edu/m/m_faq1.htm |titre=What happened in 1841? |série=M Technology and MUMPS Language FAQ, Part 1/2 |consulté le=14 août 2015|deadurl=yes |archiveurl=https://web.archive.org/web/20150828234407/http://www.vmth.ucdavis.edu/m/m_faq1.htm |archivedate=August 28, 2015 |df=mdy }}</ref>.
|31 décembre 1840 || [[MUMPS]] || 1841 une année non bissextile avant la naissance du plus vieux citoyen américain vivant au moment du codage de ce langage de programmation<ref>{{Lien archive|url=https://www.vmth.ucdavis.edu/m/m_faq1.htm |titre=What happened in 1841? |série=M Technology and MUMPS Language FAQ, Part 1/2 |consulté le=14 août 2015|horodatage archive=20150828234407 }}</ref>.
|-
|-
|17 novembre 1858 || [[OpenVMS|VMS]], [[United States Naval Observatory]], [[Digital Video Broadcasting|DVB]] SI 16-bit day stamps, other [[astronomy]]-related computations<ref>{{lien web|url=http://tycho.usno.navy.mil/mjd.html|titre=Modified Julian Date|lien auteur=Gernot M. R. Winkler |nom=Winkler |prénom=Gernot M. R. |éditeur=[[United States Naval Observatory|U.S. Naval Observatory]]|consulté le=29 janvier 2015}}</ref> || CE jour à 00:00:00 UT est le point de démarrage du calendrier julien modifié ([[Julian day#Alternatives|MJD]]) equivalent au [[jour Julien]] 2400000.5<ref>{{lien web|url=http://vms.tuwien.ac.at/info/humour/vms-base-time-origin.txt |titre=VMS base time origin |website=vms.tuwien.ac.at/info/humour |éditeur=Technische Universität Wien |deadurl=yes |archiveurl=https://web.archive.org/web/20070606064704/http://vms.tuwien.ac.at/info/humour/vms-base-time-origin.txt |archivedate=June 6, 2007 |df=mdy-all}}</ref>
|17 novembre 1858 || [[OpenVMS|VMS]], [[United States Naval Observatory]], [[Digital Video Broadcasting|DVB]] SI 16-bit day stamps, other [[astronomy]]-related computations<ref>{{lien web|url=http://tycho.usno.navy.mil/mjd.html|titre=Modified Julian Date|lien auteur=Gernot M. R. Winkler |nom=Winkler |prénom=Gernot M. R. |éditeur=[[United States Naval Observatory|U.S. Naval Observatory]]|consulté le=29 janvier 2015}}</ref> || Ce jour à 00:00:00 UT est le point de démarrage du calendrier julien modifié ([[jour julien|MJD]]) equivalent au [[jour julien]] 2400000.5<ref>{{Lien archive|titre=VMS base time origin |website=vms.tuwien.ac.at/info/humour |éditeur=Technische Universität Wien |horodatage archive=20070606064704 |url=http://vms.tuwien.ac.at/info/humour/vms-base-time-origin.txt}}</ref>
|-
|-
|30 Décembre 1899 || [[Microsoft Excel|Microsoft COM DATE]], [[Object Pascal]], [[LibreOffice|LibreOffice Calc]], [[Google Docs, Sheets and Slides|Google Sheets]]<ref>{{lien web|url=https://developers.google.com/sheets/guides/concepts#datetime_serial_numbers|titre=Introduction to the Google Sheets API|nom=|prénom=|date=|website=Google Developers|archive-url=|archive-date=|dead-url=|consulté le=}}</ref> || Valeur technique interne à Excel pour assurer la compatilibité avec [[Lotus 1-2-3]]<ref name="excel-leapyear">{{lien web|url=http://www.joelonsoftware.com/items/2008/02/19.html|titre=Why are the Microsoft Office file formats so complicated? (And some workarounds)|nom=Spolsky|prénom=Joel|consulté le=8 mars 2009}}</ref>.
|30 décembre 1899 || [[Microsoft Excel|Microsoft COM DATE]], [[Object Pascal]], [[LibreOffice|LibreOffice Calc]], [[Google Docs, Sheets and Slides|Google Sheets]]<ref>{{lien web|url=https://developers.google.com/sheets/guides/concepts#datetime_serial_numbers|titre=Introduction to the Google Sheets API|website=Google Developers}}</ref> || Valeur technique interne à Excel pour assurer la compatibilité avec [[Lotus 1-2-3]]<ref name="excel-leapyear">{{lien web|url=http://www.joelonsoftware.com/items/2008/02/19.html|titre=Why are the Microsoft Office file formats so complicated? (And some workarounds)|nom=Spolsky|prénom=Joel|consulté le=8 mars 2009}}</ref>.
|-
|-
|31 Décember 1899 || [[Visual C++#16-bit versions|Microsoft C/C++ 7.0]]<ref>{{lien web|url=https://msdn.microsoft.com/en-us/library/w4ddyt9h.aspx|titre=Time Management|website=msdn.microsoft.com}}</ref>||Un écart dans la dernière version non "visual" de Microsoft C/C++ qui a été finalement annulé.
|31 décembre 1899 || [[Visual C++#16-bit versions|Microsoft C/C++ 7.0]]<ref>{{lien web|url=https://msdn.microsoft.com/en-us/library/w4ddyt9h.aspx|titre=Time Management|website=msdn.microsoft.com}}</ref>||Un écart dans la dernière version non "visual" de Microsoft C/C++ qui a été finalement annulé.
|-
|-
|0 Janvier 1900 || [[Microsoft Excel]]<ref name="excel-leapyear" />, [[Lotus 1-2-3]]<ref>{{lien web|url=https://social.msdn.microsoft.com/Forums/office/en-US/f1eef5fe-ef5e-4ab6-9d92-0998d3fa6e14#360aa1df-ca93-45b9-b1fe-2e49f00f68e5|titre=What is story behind December 30, 1899 as base date?|website=social.msdn.microsoft.com}}</ref> || 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.
|0 janvier 1900 || [[Microsoft Excel]]<ref name="excel-leapyear" />, [[Lotus 1-2-3]]<ref>{{lien web|url=https://social.msdn.microsoft.com/Forums/office/en-US/f1eef5fe-ef5e-4ab6-9d92-0998d3fa6e14#360aa1df-ca93-45b9-b1fe-2e49f00f68e5|titre=What is story behind December 30, 1899 as base date?|website=social.msdn.microsoft.com}}</ref> || 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 1900 || [[Network Time Protocol]], [[IBM]] [[CICS]], [[Mathematica]], [[RISC OS]], [[ICL VME|VME]], [[Common Lisp]], [[Michigan Terminal System]], [[Multiple_Virtual_Storage|MVS]]||
|{{1er}} janvier 1900 || [[Network Time Protocol]], [[IBM]] [[CICS]], [[Mathematica]], [[RISC OS]], [[ICL VME|VME]], [[Common Lisp]], [[Michigan Terminal System]], [[Multiple Virtual Storage|MVS]]||
|-
|-
|{{anchor|1904-01-01}}January 1, 1904 || [[LabVIEW]], [[Apple Inc.]]'s [[classic Mac OS]], {{lang|en|texte=JMP Scripting Language}}, [[Palm OS]], [[MP4]], Microsoft Excel (optionally)<ref>{{lien web|url=http://www.cpearson.com/excel/datetime.htm|titre=Dates And Times In Excel|website=www.cpearson.com}}</ref>, [[IGOR Pro]] || 1904 is the first leap year of the 20th century<ref>{{lien web|url=http://www.mactech.com/articles/develop/issue_26/minow.html|titre=MacTech – The journal of Apple technology.|website=www.mactech.com}}</ref>.
|{{1er}} janvier 1904 || [[LabVIEW]], [[Apple Inc.]]'s [[classic Mac OS]], {{langue|en|texte=JMP Scripting Language}}, [[Palm OS]], [[MP4]], Microsoft Excel (optionally)<ref>{{lien web|url=http://www.cpearson.com/excel/datetime.htm|titre=Dates And Times In Excel|website=www.cpearson.com}}</ref>, [[IGOR Pro]] || 1904 est la première année bissextile du {{s-|XX}}<ref>{{lien web|url=http://www.mactech.com/articles/develop/issue_26/minow.html|titre=MacTech – The journal of Apple technology.|website=www.mactech.com}}</ref>.
|-
|-
|{{anchor|1967-12-31}}{{nobr|January 1, 1958}} || [[International Atomic Time|TAI]] ||
|{{1er}} janvier 1958 || [[Temps atomique international|TAI]] ||
|-
|-
|{{1er}} janvier 1960
|{{anchor|1967-12-31}}{{nobr|December 31, 1967}} || [[Pick operating system|Pick OS]] and variants (jBASE, Universe, Unidata, Revelation, Reality) || Chosen so that (date mod 7) would produce 0=Sunday, 1=Monday, 2=Tuesday, 3=Wednesday, 4=Thursday, 5=Friday, and 6=Saturday<ref>Mark Pick, International Spectrum Conference April 2010</ref>.
|[[SAS (software)|SAS System]]<ref>{{lien web|url=https://support.sas.com/content/dam/SAS/support/en/books/the-essential-guide-to-sas-dates-and-times/the-essential-guide-to-sas-dates-and-times-first-edition/59411_excerpt.pdf|titre=Introduction to Dates and Times in SAS|website=}}</ref> ||
|-
|-
|31 décembre 1967 || [[Pick operating system|Pick 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<ref>Mark Pick, International Spectrum Conference April 2010</ref>.
|January 1, 1960
|[[SAS (software)|SAS System]]<ref>{{lien web|url=https://support.sas.com/content/dam/SAS/support/en/books/the-essential-guide-to-sas-dates-and-times/the-essential-guide-to-sas-dates-and-times-first-edition/59411_excerpt.pdf|titre=Introduction to Dates and Times in SAS|nom=|prénom=|date=|website=|archive-url=|archive-date=|dead-url=|consulté le=}}</ref>
|
|-
|-
|{{anchor|1970-01-01}}[[Unix time|January 1, 1970]] || [[Unix time|Unix Epoch]] aka [[POSIX time]], used by [[Unix]] and [[Unix-like]] systems ([[Linux]], [[macOS]]), and [[programming language]]s: most [[C (programming language)|C]]/[[C++]] implementations<ref>{{lien web|url=http://www.cplusplus.com/reference/ctime/time_t/ |titre=time_t – C++ Reference |consulté le=6 avril 2015}}</ref>, [[Java (programming language)|Java]], [[JavaScript]], [[Perl]], [[PHP]], [[Python (programming language)|Python]], [[Ruby (programming language)|Ruby]], [[Tcl]], [[ActionScript]]. Also used by [[Precision Time Protocol]]. ||
|{{1er}} janvier 1970 || [[Heure Unix|Unix 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 (langage de programmation)|C]]/[[C++]]<ref>{{lien web|url=http://www.cplusplus.com/reference/ctime/time_t/ |titre=time_t – C++ Reference |consulté le=6 avril 2015}}</ref>, [[Java (langage de programmation)|Java]], [[JavaScript]], [[Perl (langage)|Perl]], [[PHP]], [[Python (langage)|Python]], [[Ruby]], [[Tool Command Language|TCL]], [[ActionScript]]. Utilisé également par [[Precision Time Protocol|PTP]]. ||
|-
|-
|{{anchor|1978-01-01}}January 1, 1978 || [[AmigaOS]]<ref>{{lien web|url=http://obligement.free.fr/articles_traduction/amiga_bogue_an2000_en.php |titre=File: the year 2000 problem and the Amiga |prénom=Olaf |nom=Barthel |date=septembre 1998 |website=obligement.free.fr}}</ref>.{{efn|AmigaOS measures time in seconds and stores it in a signed 32 bit integer. After January 19, 2046, 03:14:07 the date will be negative. Latest OS version 4.1 (2016) has no fix for this.}} The Commodore Amiga hardware systems were introduced between 1985 and 1994. Latest OS version 4.1 (December 2016). [[AROS]], [[MorphOS]]. ||
|{{ancre|1978-01-01}}{{1er}} janvier 1978 ||[[AmigaOS]]<ref>{{lien web|url=http://obligement.free.fr/articles_traduction/amiga_bogue_an2000_en.php |titre=File: the year 2000 problem and the Amiga |prénom=Olaf |nom=Barthel |date=septembre 1998 |website=obligement.free.fr}}</ref>.{{efn|AmigaOS measures time in seconds and stores it in a signed 32 bit integer. After January 19, 2046, 03:14:07 the date will be negative. Latest OS version 4.1 (2016) has no fix for this.}} The Commodore Amiga hardware systems were introduced between 1985 and 1994. Latest OS version 4.1 (December 2016). [[AROS]], [[MorphOS]]. ||
|-
|-
|{{anchor|1980-01-01}}January 1, 1980 || [[IBM BIOS]] INT 1Ah, [[DOS]], [[OS/2]], [[FAT12]], [[FAT16]], [[FAT32]], [[exFAT]] filesystems || The IBM PC with its BIOS as well as [[86-DOS]], [[MS-DOS]] and [[PC DOS]] with their FAT12 file system were developed and introduced between 1980 and 1981
|{{1er}} janvier 1980 ||[[Système de fichiers|Les systèmes de fichiers]] [[IBM BIOS]] INT 1Ah, [[DOS]], [[OS/2]], [[FAT12]], [[FAT16]], [[FAT32]], [[exFAT]] || Le 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.
|-
|-
|{{anchor|1980-01-06}}January 6, 1980 || [[Qualcomm]] [[Binary Runtime Environment for Wireless|BREW]], [[Global Positioning System|GPS]], [[ATSC]] 32-bit time stamps || GPS counts weeks (a week is defined to start on Sunday) and January 6 is the first Sunday of 1980<ref>{{article|url=http://tf.nist.gov/general/pdf/1602.pdf |titre=Time and frequency distribution using satellites |journal=
|6 janvier 1980 ||[[Qualcomm]] [[Binary Runtime Environment for Wireless|BREW]], [[Global Positioning System|GPS]], [[ATSC]] 32-bit time stamps || Le 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<ref>{{article|url=http://tf.nist.gov/general/pdf/1602.pdf |titre=Time and frequency distribution using satellites |journal=
Reports on Progress in Physics |volume=65 |numéro=8 |date=5 juillet 2002 |nom=Levine |prénom=Judah |via= National Institute of Standards and Technology (NIST)}}</ref>{{,}}<ref>{{lien web|url=http://www.oc.nps.edu/oc2902w/gps/timsys.html |titre=Time Systems and Dates – GPS Time |éditeur=Naval Postgraduate School, Oceanography Department |website=www.oc.nps.edu}}</ref>.
Reports on Progress in Physics |volume=65 |numéro=8 |date=5 juillet 2002 |nom=Levine |prénom=Judah }}</ref>{{,}}<ref>{{lien web|url=http://www.oc.nps.edu/oc2902w/gps/timsys.html |titre=Time Systems and Dates – GPS Time |éditeur=Naval Postgraduate School, Oceanography Department |website=www.oc.nps.edu}}</ref>.
|-
|-
|{{anchor|2000-01-01}}January 1, 2000 || [[AppleSingle and AppleDouble formats|AppleSingle]], [[AppleSingle and AppleDouble formats|AppleDouble]]<ref name="as-ad-epoch">{{lien web|url=http://users.phg-online.de/tk/netatalk/doc/Apple/v2/AppleSingle_AppleDouble.pdf |titre=AppleSingle/AppleDouble Formats for Foreign Files Developer's Note |consulté le=23 octobre 2007|deadurl=yes |archiveurl=https://web.archive.org/web/20110717032808/http://users.phg-online.de/tk/netatalk/doc/Apple/v2/AppleSingle_AppleDouble.pdf |archivedate=July 17, 2011 |df=mdy }}</ref>, [[PostgreSQL]]<ref>{{lien web|url=http://www.postgresql.org/docs/9.1/static/datatype-datetime.html |titre=PostgreSQL 9.1.24 Documentation. Chapter 8: Data Types. 8.5. Date/Time Types |website=PostgreSQL.org |extrait=Note: When timestamp values are stored as eight-byte integers (currently the default), microsecond precision is available over the full range of values. […] timestamp values are stored as seconds before or after midnight 2000-01-01.}}</ref>,{{efn|Be aware that the Epoch function return the unix Epoch SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE '1970-01-01 00:00:00-00'); returns 0}} [[ZigBee]] UTCTime<ref>{{lien web|url=https://www.scribd.com/document/58909727/075366r01ZB-AFG-ZigBee-Cluster-Library-Public-Download-Version |passage=Section 2.5.2.21 UTCTime |titre=ZigBee Cluster Library Specification}}</ref> ||
|{{ancre|2000-01-01}}{{1er}} janvier 2000 ||[[AppleSingle and AppleDouble formats|AppleSingle]], [[AppleSingle and AppleDouble formats|AppleDouble]]<ref name="as-ad-epoch">{{Lien archive|titre=AppleSingle/AppleDouble Formats for Foreign Files Developer's Note |consulté le=23 octobre 2007|horodatage archive=20110717032808 |url=http://users.phg-online.de/tk/netatalk/doc/Apple/v2/AppleSingle_AppleDouble.pdf}}</ref>, [[PostgreSQL]]<ref>{{lien web|url=http://www.postgresql.org/docs/9.1/static/datatype-datetime.html |titre=PostgreSQL 9.1.24 Documentation. Chapter 8: Data Types. 8.5. Date/Time Types |website=PostgreSQL.org |extrait=Note: When timestamp values are stored as eight-byte integers (currently the default), microsecond precision is available over the full range of values. […] timestamp values are stored as seconds before or after midnight 2000-01-01.}}</ref>,{{efn|Be aware that the Epoch function return the unix Epoch SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE '1970-01-01 00:00:00-00'); returns 0}} [[ZigBee]] UTCTime<ref>{{lien web|url=https://www.scribd.com/document/58909727/075366r01ZB-AFG-ZigBee-Cluster-Library-Public-Download-Version |passage=Section 2.5.2.21 UTCTime |titre=ZigBee Cluster Library Specification}}</ref> ||
|-
|-
|{{anchor|2001-01-01}}January 1, 2001 || [[Apple Inc.|Apple]]'s [[Cocoa (API)|Cocoa]] framework || 2001 is the year of the release of Mac OS X 10.0 (but NSDate for Apple's [[Enterprise Objects Framework|EOF]] 1.0 was developed in 1994).
|{{ancre|2001-01-01}}{{1er}} janvier 2001 || Le framework [[Cocoa (Apple)|Cocoa]] [[Apple Inc.|d'Apple]]|| 2001 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).
|}
|}


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.
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==
== 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 [[Bug de l'an 2038|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.
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 [[Bug de l'an 2038|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 {{formatnum:446744073709551616}} unités de temps du système d'exploitation : la nouvelle date butoir se situe à l'an {{formatnum:292277026596}} {{ap JC}} (soit environ 21 fois l'âge de l'univers) : le problème sera ainsi résolu pour notre ère.
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⁶⁴ = {{unité|18446744073709551616}} unités de temps du système d'exploitation : la nouvelle date butoir se situe à l'an {{formatnum:292277026596}} {{ap JC}} (soit environ 21 fois l'âge de l'univers) : le problème sera ainsi résolu pour notre ère.


== Notes et références ==
== Notes et références ==
{{notes}}
{{références}}
{{références}}


{{Portail|Informatique}}
{{Portail|Informatique|temps}}


[[Catégorie:Temps|Epoch]]
[[Catégorie:Représentation informatique du temps]]
[[Catégorie:Mesure du temps|Epoch]]
[[Catégorie:Informatique]]

Dernière version du 9 janvier 2024 à 16:45

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[modifier | modifier le code]

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

Date de démarrage de l'époque Usages principaux Raison 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 1582 UUID version 1 La date de bascule du calendrier grégorien[10]
1er janvier 1601 NTFS, COBOL, Win32/Win64 1601 é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 1840 MUMPS 1841 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 1858 VMS, 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 1899 Microsoft 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 1899 Microsoft 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 1900 Microsoft 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 1900 Network Time Protocol, IBM CICS, Mathematica, RISC OS, VME, Common Lisp, Michigan Terminal System, MVS
1er janvier 1904 LabVIEW, Apple Inc.'s classic Mac OS, JMP Scripting Language, Palm OS, MP4, Microsoft Excel (optionally)[19], IGOR Pro 1904 est la première année bissextile du XXe siècle[20].
1er janvier 1958 TAI
1er janvier 1960 SAS System[21]
31 décembre 1967 Pick 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 1970 Unix 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 1978 AmigaOS[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 1980 Les systèmes de fichiers IBM BIOS INT 1Ah, DOS, OS/2, FAT12, FAT16, FAT32, exFAT Le 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 1980 Qualcomm BREW, GPS, ATSC 32-bit time stamps Le 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 2000 AppleSingle, AppleDouble[27], PostgreSQL[28],[note 3] ZigBee UTCTime[29]
1er janvier 2001 Le framework Cocoa d'Apple 2001 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).

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[modifier | modifier le code]

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[modifier | modifier le code]

  1. a et b Proleptic Gregorian calendar
  2. AmigaOS measures time in seconds and stores it in a signed 32 bit integer. After January 19, 2046, 03:14:07 the date will be negative. Latest OS version 4.1 (2016) has no fix for this.
  3. Be aware that the Epoch function return the unix Epoch SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE '1970-01-01 00:00:00-00'); returns 0
  1. "datenum", MathWorks, accessed July 7, 2015.
  2. « GregorianCalendar Class », MSDN (consulté le ), Remarks
  3. "DateTimeOffset Structure" (.NET Framework 4.5), MSDN, 2015.
  4. « Package time », golang.org (consulté le )
  5. « Date—z/OS TSO/E REXX Reference », sur IBM.com, IBM,
  6. Nachum Dershowitz et Edward Reingold, Calendrical Calculations, Cambridge University Press, , 3rd éd., 512 p. (ISBN 978-0-521-70238-6), « The Gregorian calendar »
  7. M. F. Cowlishaw, The Rexx Language : A Practical Approach to Programming, Prentice Hall, , 2nd éd., 203 p. (ISBN 0-13-780651-5)
  8. (en) Request for comments no 3339
  9. « Go 1 Release Notes—Major changes to the library—Time », golang.org, (consulté le )
  10. P. Leach, M. Mealling et R. Salz, « RFC 4122: Proposed Standard: A Universally Unique IDentifier (UUID) URN Namespace », sur tools.ietf.org, Internet Engineering Task Force,
  11. Raymond Chen, « Why is the Win32 epoch January 1, 1601? », sur The Old New Thing, MSDN Blogs,
  12. « What happened in 1841? », M Technology and MUMPS Language FAQ, Part 1/2 (version du sur Internet Archive)
  13. Gernot M. R. Winkler, « Modified Julian Date », U.S. Naval Observatory (consulté le )
  14. « VMS base time origin », sur vms.tuwien.ac.at/info/humour, Technische Universität Wien (version du sur Internet Archive)
  15. « Introduction to the Google Sheets API », sur Google Developers
  16. a et b Joel Spolsky, « Why are the Microsoft Office file formats so complicated? (And some workarounds) » (consulté le )
  17. « Time Management », sur msdn.microsoft.com
  18. « What is story behind December 30, 1899 as base date? », sur social.msdn.microsoft.com
  19. « Dates And Times In Excel », sur www.cpearson.com
  20. « MacTech – The journal of Apple technology. », sur www.mactech.com
  21. « Introduction to Dates and Times in SAS »
  22. Mark Pick, International Spectrum Conference April 2010
  23. « time_t – C++ Reference » (consulté le )
  24. Olaf Barthel, « File: the year 2000 problem and the Amiga », sur obligement.free.fr,
  25. Judah Levine, « Time and frequency distribution using satellites », Reports on Progress in Physics, vol. 65, no 8,‎ (lire en ligne)
  26. « Time Systems and Dates – GPS Time », sur www.oc.nps.edu, Naval Postgraduate School, Oceanography Department
  27. « AppleSingle/AppleDouble Formats for Foreign Files Developer's Note » (version du sur Internet Archive)
  28. « PostgreSQL 9.1.24 Documentation. Chapter 8: Data Types. 8.5. Date/Time Types », sur PostgreSQL.org : « Note: When timestamp values are stored as eight-byte integers (currently the default), microsecond precision is available over the full range of values. […] timestamp values are stored as seconds before or after midnight 2000-01-01. »
  29. « ZigBee Cluster Library Specification », Section 2.5.2.21 UTCTime