What Is Unix Time (Epoch Time)?
Last updated October 18, 2026
One-line definition: Unix time is the number of seconds elapsed since January 1, 1970 at 00:00:00 UTC. It's well past 1.7 billion now and grows by 1 every second. It's timezone-neutral: the same value everywhere on Earth. To turn a timestamp into a readable date, use the epoch time converter.
What Unix Time Is
Also called epoch time or POSIX time, Unix time is a single integer representing a moment in time as a count of seconds from a fixed starting point: January 1, 1970 at midnight UTC. The number 1780000000 refers to the same instant in every timezone on Earth.
Computers prefer integers over strings. Comparing two Unix timestamps is a single arithmetic operation. Comparing two date strings like “June 4, 2026 9:02 AM EDT” and “2026-06-04T14:02:00+05:30” requires parsing, timezone conversion, and then comparison. Unix time removes all of that.
The timestamp has no timezone of its own. Your device applies one when it displays the value. Here's 1780000000 on four clocks:
| Time zone | 1780000000 displays as |
|---|---|
| UTC | May 28, 2026, 8:26:40 PM |
| New York (EDT) | May 28, 2026, 4:26:40 PM |
| Kolkata (IST) | May 29, 2026, 1:56:40 AM |
| Tokyo (JST) | May 29, 2026, 5:26:40 AM |
Same instant, two different calendar dates depending on where you're reading it. In JavaScript, new Date(1780000000 * 1000) gives you that moment. In Python, datetime.fromtimestamp(1780000000, tz=timezone.utc) does the same.
Doing the Conversion by Hand
A timestamp is days and seconds mixed together, and you can pull them apart with division. Take 1780000000. Dividing by 86,400 (the seconds in a day) gives 20,601 whole days with 73,600 seconds left over.
Counting 20,601 days forward from January 1, 1970 lands on May 28, 2026. The leftover 73,600 seconds is 20 hours, 26 minutes and 40 seconds, so the moment is 20:26:40 UTC, the first row of the table above. Calendar code does exactly this, with the leap-year rules added.
Seconds vs Milliseconds
Traditional Unix timestamps are in seconds (10-digit numbers). JavaScript's Date.now() returns milliseconds (13-digit numbers). This mismatch causes bugs when a JavaScript app passes a millisecond timestamp to a system expecting seconds.
Divide a 13-digit timestamp by 1,000 to get seconds. The digit count is a reliable clue for any date between September 2001 and November 2286. Older timestamps have fewer digits, so a 9-digit value is seconds from before September 9, 2001.
Some languages go finer still. Go's UnixNano() and Python's time.time_ns() return nanoseconds, which are 19 digits long. The epoch time converter auto-detects seconds and milliseconds.
Why January 1, 1970
There was no deep reason. Early Unix kept time as a 32-bit counter ticking 60 times a second, which only lasted about two and a quarter years before overflowing. The starting date moved between early releases (1971 and 1972 were both used), and the system was later changed to count whole seconds to avoid that short-term overflow.
Midnight on January 1, 1970 was picked arbitrarily by the Unix engineers as a convenient round date. It stuck because so much software was built on it.
What Unix Time Doesn't Count
Unix time pretends every day has exactly 86,400 seconds. The POSIX standard says so directly: each day is accounted for by exactly 86,400 seconds. That makes the arithmetic simple, but it means Unix time isn't a literal count of every second that has passed.
When a leap second is added to UTC, the Unix numbers repeat rather than adding an extra one. For most apps this never matters. For systems that need precise intervals across a leap second, it can.
Notable Epoch Values
| Timestamp | Date (UTC) | Note |
|---|---|---|
| -2,147,483,648 | Dec 13, 1901 20:45:52 | Earliest value a signed 32-bit integer holds |
| 0 | Jan 1, 1970 00:00:00 | The Unix epoch |
| 1,000,000,000 | Sep 9, 2001 01:46:40 | "Billennium", first 10-digit timestamp |
| 1,500,000,000 | Jul 14, 2017 02:40:00 | One and a half billion |
| 2,000,000,000 | May 18, 2033 03:33:20 | Two billion milestone |
| 2,147,483,647 | Jan 19, 2038 03:14:07 | 32-bit overflow (Y2K38) |
| 4,294,967,295 | Feb 7, 2106 06:28:15 | Limit of an unsigned 32-bit integer |
| 9,999,999,999 | Nov 20, 2286 17:46:39 | Last 10-digit timestamp |
Y2K38: a signed 32-bit integer overflows one second after 03:14:07 UTC on January 19, 2038, and wraps back to December 1901. Systems that store time in 64 bits are not affected, but older software and embedded devices still using 32-bit fields are at risk. Values before 1970 are negative, and many systems accept them, though support varies, so test before relying on it.
Related Tools & Terms
Sources: POSIX.1-2017, section 4.16 (Seconds Since the Epoch), Unix time (Wikipedia)