Skip to main content
Epoch Calculator
UTC 02:47:34

What is epoch time?

Epoch time, Unix time, and POSIX time are three names for the same value: the number of seconds that have passed since January 1, 1970 at 00:00:00 UTC. It is the standard way computers store a moment in time, because it is a single integer with no time zone, no calendar quirks, and no string-parsing ambiguity.

The epoch right now  

TL;DR

  • Epoch time = seconds since 1970-01-01T00:00:00Z.
  • Unix time, POSIX time, and epoch time are identical.
  • Epoch 0 is the reference moment. Negative values represent dates before 1970.
  • 10-digit numbers are seconds; 13-digit numbers are milliseconds.
  • On signed 32-bit systems, the counter overflows on 2038-01-19 03:14:07 UTC (the Y2038 problem).

Why count from January 1, 1970?

The choice was a convenience, not a principle. Early Unix work at Bell Labs in the late 1960s and early 1970s needed a fixed reference point for the timestamp counter, and a recent round number was the obvious pick. The first version of Unix to use this convention started counting from 1971, but the reference was shifted to 1970 in later editions and standardized as POSIX. It has been the universal computing reference ever since.

How to read an epoch timestamp in your head

A few rough landmarks help. 1,000,000,000 (1 billion) was September 9, 2001; a famous "epoch milestone". 1,500,000,000 was July 14, 2017. 1,700,000,000 was November 14, 2023. 2,000,000,000 will be May 18, 2033. Today's epoch values are in the 1.7-billion range; for anything precise, paste the number into the Unix timestamp converter.

Other epochs in computing

The Unix epoch is the dominant one, but not the only one. NTP (Network Time Protocol) uses an epoch of 1900-01-01T00:00:00Z. GPS uses 1980-01-06T00:00:00Z. Microsoft Excel counts days since 1899-12-30 (with a leap-year bug preserved for backward compatibility). Apple's old Mac OS Classic counted seconds since 1904. Modern macOS and iOS use the Unix epoch. When somebody says "epoch time" without qualification, they almost always mean Unix.

The Y2038 problem in one paragraph

On systems where Unix time is stored as a signed 32-bit integer, the largest representable value is 2,147,483,647; corresponding to 2038-01-19 03:14:07 UTC. One second later, the counter overflows to a large negative number, throwing dates back to 1901. The fix is to store time in a 64-bit signed integer, which pushes the overflow horizon to roughly the year 292 billion. Most modern systems have already migrated, but embedded devices and legacy databases are still being audited.

Try it

Frequently asked questions

What is epoch time?

Epoch time is the number of seconds that have elapsed since January 1, 1970 at 00:00:00 UTC, not counting leap seconds. It is a single integer used by computers to represent a moment in time. The same value is also called Unix time or POSIX time; all three names refer to the identical number.

When did the Unix epoch start?

The Unix epoch started at 1970-01-01T00:00:00Z; midnight UTC on January 1, 1970. That moment has the epoch value 0. Every second after that increments the value by one; every second before that is a negative number. The choice of 1970 was made by the early Unix designers at Bell Labs because it was a convenient round-number recent date when the original work was done.

What is epoch 0?

Epoch 0 is the Unix timestamp 0, which corresponds to exactly 1970-01-01T00:00:00 UTC. It is the reference point that every other Unix timestamp is measured from. Programs that show "December 31, 1969" or "January 1, 1970" as a default date almost always mean they are accidentally displaying epoch 0 because of an uninitialized timestamp.

How do I read an epoch timestamp?

Epoch timestamps look like a plain integer. For example, 1748876543. To read it, you convert the integer back into a date and time. The easiest way is to paste it into a Unix timestamp converter; the result is the equivalent date in UTC and your local time. If the number is 13 digits or longer, it is in milliseconds rather than seconds.

What is the difference between epoch time and Unix time?

There is no difference; they are two names for the same thing. "Unix time" is the historical name from the operating system where it originated. "Epoch time" is the everyday programmer term, where "epoch" means the reference start moment. "POSIX time" is the formal standards-body name. All three count seconds since 1970-01-01T00:00:00Z.

What is time since epoch?

Time since epoch is the duration between the Unix epoch (1970-01-01T00:00:00Z) and any other moment, expressed in seconds. It is literally the definition of a Unix timestamp. The phrase "time since epoch" is what some programming languages, like C++ (chrono::system_clock::time_since_epoch()), use as the official method name.

Why is epoch time in seconds and not in a normal date format?

Integers are simpler than dates. A Unix timestamp has no time zone, no calendar quirks (leap years, month lengths), no parsing ambiguity (is 02/03 February 3rd or March 2nd?), and no string-encoding issues. Arithmetic; "what is 90 days from now?"; is just integer math. The trade-off is that it is not human-readable, which is why converter tools exist.

What is the Y2038 problem?

On systems where Unix time is stored as a signed 32-bit integer, the maximum representable value is 2,147,483,647; which corresponds to 2038-01-19T03:14:07Z. After that moment, the counter overflows to a large negative number, sending dates back to 1901. The fix is to use a 64-bit signed integer instead, which pushes the overflow to roughly the year 292 billion. Modern systems and languages have largely migrated.

Is epoch time the same as UTC?

They are related but not the same. UTC (Coordinated Universal Time) is a time-zone-like reference for human-readable dates. Epoch time is an integer count of seconds. The Unix timestamp 0 is defined as the moment 1970-01-01T00:00:00Z in UTC, and every Unix timestamp has a one-to-one mapping to a UTC moment. So Unix time always describes an instant in UTC, but it is not a time zone itself.

How do I get the current epoch time?

The simplest way is to look at the live clock at the top of the Epoch Calculator homepage; it shows the current epoch in seconds, milliseconds, ISO 8601, and RFC 2822 and updates every second. In code: JavaScript uses Math.floor(Date.now() / 1000); Python uses int(time.time()); Linux/macOS shell uses date +%s; PostgreSQL uses EXTRACT(EPOCH FROM NOW()).

What does "epoch 1900" mean?

Epoch 1900 refers to a different reference date used by some systems; notably NTP (Network Time Protocol), which counts seconds since 1900-01-01T00:00:00Z, and Microsoft Excel, which counts days since 1899-12-30. Neither is the Unix epoch. When someone says "epoch time" without qualification, they almost always mean the Unix epoch (1970).