In computing, an epoch is a fixed date and time used as a reference from which a computer measures
system time
In computer science and computer programming, system time represents a computer system's notion of the passage of time. In this sense, ''time'' also includes the passing of calendar date, days on the calendar.
System time is measured by a ''sys ...
. Most computer systems determine time as a number representing the seconds removed from a particular arbitrary date and time. For instance,
Unix
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
and
POSIX
The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
measure time as the number of seconds that have passed since Thursday 1 January 1970 00:00:00
UT, a point in time known as the
Unix epoch
Unix time is a date and time representation widely used in computing. It measures time by the number of non-leap seconds that have elapsed since 00:00:00 UTC on 1 January 1970, the Unix epoch. For example, at midnight on 1 January 2010, ...
. The
C# programming language and
Windows NT
Windows NT is a Proprietary software, proprietary Graphical user interface, graphical operating system produced by Microsoft as part of its Windows product line, the first version of which, Windows NT 3.1, was released on July 27, 1993. Original ...
systems up to and including
Windows 11
Windows 11 is a version of Microsoft's Windows NT operating system, released on October 5, 2021, as the successor to Windows 10 (2015). It is available as a free upgrade for devices running Windows 10 that meet the #System requirements, Windo ...
and
Windows Server 2022
Windows Server 2022 is the thirteenth major version of the Windows NT operating system produced by Microsoft to be released under the Windows Server brand name. It was announced at Microsoft's Ignite event from March 2–4, 2021. It was rele ...
measure time as the number of 100-nanosecond intervals that have passed since 00:00:00 UTC on 1 January in the years
AD 1 and
AD 1601, respectively, making those points in time the epochs for those systems.
Computing epochs are almost always specified as midnight
Universal Time
Universal Time (UT or UT1) is a time standard based on Earth's rotation. While originally it was mean solar time at 0° longitude, precise measurements of the Sun are difficult. Therefore, UT1 is computed from a measure of the Earth's angle wi ...
on some particular date.
Resolution and representation
Software timekeeping systems vary widely in the
resolution of time measurement; some systems may use time units as large as a day, while others may use
nanosecond
A nanosecond (ns) is a unit of time in the International System of Units (SI) equal to one billionth of a second, that is, of a second, or seconds.
The term combines the SI prefix ''nano-'' indicating a 1 billionth submultiple of an SI unit (e ...
s. For example, for an epoch date of midnight UTC (00:00) on 1 January 1900, and a time unit of a second, the time of the midnight (24:00) between 1 January 1900 and 2 January 1900 is represented by the number 86400, the number of seconds in one day. When times prior to the epoch need to be represented, it is common to use the same system, but with negative numbers.
Such representation of time is mainly for internal use. On systems where date and time are important in the human sense, software will almost always convert this internal number into a date and time representing a human calendar.
Problems
Computers do not generally store arbitrarily large numbers. Instead, each number stored by a computer is allotted a fixed amount of space. Therefore, when the number of time units that have elapsed since a system's epoch exceeds the largest number that can fit in the space allotted to the time representation, the time representation
overflows, and problems can occur. While a system's behavior after overflow occurs is not necessarily predictable, in most systems the number representing the time will reset to zero, and the computer system will think that the current time is the epoch time again.
Most famously, older systems that counted time as the number of years elapsed since the epoch of 1 January 1900 and which only allotted enough space to store the numbers 0 through 99, experienced the
Year 2000 problem
The term year 2000 problem, or simply Y2K, refers to potential computer errors related to the Time formatting and storage bugs, formatting and storage of calendar data for dates in and after the year 2000. Many Computer program, programs repr ...
. These systems (if not corrected beforehand) would interpret the date 1 January 2000 as 1 January 1900, leading to unpredictable errors at the beginning of the year 2000.
Even systems that allocate more storage to the time representation are not immune from this kind of error. Many
Unix-like operating systems which keep time as seconds elapsed from the epoch date of 1 January 1970, and allot timekeeping enough storage to store numbers as large as will experience an overflow problem on 19 January 2038. This is known as the
Year 2038 problem
The year 2038 problem (also known as Y2038, Y2K38, Y2K38 superbug or the Epochalypse) is a time computing problem that leaves some computer systems unable to represent times after 03:14:07 UTC on 19 January 2038.
The problem exists in ...
.
Other more subtle timekeeping problems exist in computing, such as accounting for
leap second
A leap second is a one-second adjustment that is occasionally applied to Coordinated Universal Time (UTC), to accommodate the difference between precise time (International Atomic Time (TAI), as measured by atomic clocks) and imprecise solar tim ...
s, which are not observed with any predictability or regularity. Additionally, applications that need to represent historical dates and times (for example, representing
a date prior to the switch from the
Julian calendar
The Julian calendar is a solar calendar of 365 days in every year with an additional leap day every fourth year (without exception). The Julian calendar is still used as a religious calendar in parts of the Eastern Orthodox Church and in parts ...
to the
Gregorian calendar
The Gregorian calendar is the calendar used in most parts of the world. It went into effect in October 1582 following the papal bull issued by Pope Gregory XIII, which introduced it as a modification of, and replacement for, the Julian cale ...
) must use specialized timekeeping
libraries
A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
.
Finally, some software must maintain compatibility with older software that does not keep time in strict accordance with traditional timekeeping systems. For example,
Microsoft Excel
Microsoft Excel is a spreadsheet editor developed by Microsoft for Microsoft Windows, Windows, macOS, Android (operating system), Android, iOS and iPadOS. It features calculation or computation capabilities, graphing tools, pivot tables, and a ...
observes the fictional date of
29 February 1900 in order to maintain
bug compatibility with older versions of
Lotus 1-2-3
Lotus 1-2-3 is a discontinued spreadsheet program from Lotus Software (later part of IBM). It was the first killer application of the IBM PC, was hugely popular in the 1980s, and significantly contributed to the success of IBM PC-compatibles ...
.
Lotus 1-2-3 observed the date due to an error; by the time the error was discovered, it was too late to fix it—"a change now would disrupt formulas which were written to accommodate this anomaly".
In satellite-based time systems
There are at least six
satellite navigation
A satellite navigation or satnav system is a system that uses satellites to provide autonomous geopositioning. A satellite navigation system with global coverage is termed global navigation satellite system (GNSS). , four global systems are ope ...
systems, all of which function by transmitting
time signal
A time signal is a visible, audible, mechanical, or electronic signal used as a reference to determine the time of day.
Church bells or voices announcing hours of prayer gave way to automatically operated chimes on public clocks; however, au ...
s. Of the only two satellite systems with global coverage,
GPS calculates its time signal from an epoch, whereas
GLONASS
GLONASS (, ; ) is a Russian satellite navigation system operating as part of a radionavigation-satellite service. It provides an alternative to Global Positioning System (GPS) and is the second navigational system in operation with global cove ...
calculates time as an offset from
UTC, with the UTC input adjusted for
leap seconds. Of the only two other systems aiming for global coverage,
Galileo
Galileo di Vincenzo Bonaiuti de' Galilei (15 February 1564 – 8 January 1642), commonly referred to as Galileo Galilei ( , , ) or mononymously as Galileo, was an Italian astronomer, physicist and engineer, sometimes described as a poly ...
calculates from an epoch and
BeiDou
The BeiDou Navigation Satellite System (BDS; ) is a satellite-based radio navigation system owned and operated by the China National Space Administration. It provides geolocation and time information to a BDS receiver anywhere on or near the ...
calculates from UTC without adjustment for leap seconds.
GPS also transmits the offset between UTC time and GPS time and must update this offset every time there is a
leap second
A leap second is a one-second adjustment that is occasionally applied to Coordinated Universal Time (UTC), to accommodate the difference between precise time (International Atomic Time (TAI), as measured by atomic clocks) and imprecise solar tim ...
, requiring GPS-receiving devices to handle the update correctly. In contrast, leap seconds are transparent to GLONASS users.
The complexities of calculating UTC from an epoch are explained by the
European Space Agency
The European Space Agency (ESA) is a 23-member International organization, international organization devoted to space exploration. With its headquarters in Paris and a staff of around 2,547 people globally as of 2023, ESA was founded in 1975 ...
in Galileo documentation under "Equations to correct system timescale to reference timescale".
Notable epoch dates in computing
The following table lists epoch dates used by popular software and other computer-related systems. The time in these systems is stored as the quantity of a particular time unit (days, seconds, nanoseconds, etc.) that has elapsed since a stated time (usually midnight UTC at the beginning of the given date).
See also
*
System time
In computer science and computer programming, system time represents a computer system's notion of the passage of time. In this sense, ''time'' also includes the passing of calendar date, days on the calendar.
System time is measured by a ''sys ...
*
Unix time
Unix time is a date and time representation widely used in computing. It measures time by the number of non-leap seconds that have elapsed since 00:00:00 Coordinated Universal Time, UTC on 1 January 1970, the Unix Epoch (computing), epoc ...
Notes
References
External links
Critical and Significant Dates(J. R. Stockton), an extensive list of dates that are problematic for various operating systems and computing devices.
Potential problem dates for computers (pdf)A list of potential problem dates for computers and software from 2001 to 2100 (IET).
{{Year-related problems
Calendaring standards