What is a Unix timestamp, and why do systems love it?
A Unix timestamp counts the seconds elapsed since
1970-01-01T00:00:00Z—the Unix epoch. It is a single,
timezone-free number that makes storing, sorting, and comparing moments
trivial.
Seconds, milliseconds, and beyond
Classic Unix time uses whole seconds. Many systems—JavaScript's
Date.now() included—use milliseconds instead, producing 13
digit values. Some platforms go further to microseconds or nanoseconds.
The digits count is usually enough to tell them apart.
Because timestamps are timezone-independent by definition, converting to a human-readable date always requires choosing a zone. This tool shows UTC (ISO 8601) output so results are unambiguous.
Reading a timestamp at a glance
Digit count reveals the unit.
| Digits | Typical unit | Example near 2024 |
|---|---|---|
| 10 | Seconds | 1705321845 |
| 13 | Milliseconds | 1705321845000 |
| 16 | Microseconds | 1705321845000000 |
| 19 | Nanoseconds | 1705321845000000000 |
Classic pitfalls
Milliseconds read as seconds
A 13-digit value interpreted as seconds lands centuries in the future. Always confirm the unit your API expects and returns.
Dates need a location
Two teams reading the same epoch in different zones will quote two different wall-clock times—and both are correct. Prefer ISO 8601 with an explicit offset when sharing dates.
Before the epoch
Moments before 1970 are negative numbers. Historical data can and does use them; make sure your schema allows signed values.