What Is a Unix Timestamp, and Why Does It Start in 1970?
Unix timestamps count seconds since 1970-01-01 UTC. Here's what that means, why it was chosen, and how to convert to and from human-readable dates.
A Unix timestamp (you'll also see it called epoch time, POSIX time, or just Unix time) is the number of seconds since January 1, 1970 at 00:00:00 UTC, not counting leap seconds.
Right now it's a ten-digit number, and it's heading toward eleven.
Why 1970?
The early Unix team at Bell Labs needed a fixed zero for the system clock. 1970 was the decade Unix was being built in, the math stayed simple, and the number fit in a 32-bit signed integer for decades. Good enough became the standard.
The Year 2038 problem
A 32-bit signed integer overflows on January 19, 2038 at 03:14:07 UTC. Modern systems already use 64-bit timestamps, which won't overflow for roughly 292 billion years. The risk lives in embedded gear and legacy databases still running 32-bit time. They need a fix before 2038.
Milliseconds vs seconds
Here's the thing that trips most people up. JavaScript's Date.now() returns milliseconds, which is a 13-digit number. Most other languages return seconds. If your date lands in the year 53,978 (or 1970), you almost certainly need to multiply or divide by 1000.
The Unix Timestamp Converter handles both formats and goes either direction.