What is Unix timestamp?
A Unix timestamp (also called Unix time or POSIX time) is the count of seconds that have elapsed since the Unix epoch — 1970-01-01T00:00:00Z (midnight UTC on January 1, 1970). It is the universal, timezone-independent representation of a point in time used by operating systems, databases, APIs, and log files worldwide.
Unix time counts seconds elapsed since the epoch, excluding leap seconds (UTC leap seconds are smeared out or ignored). A timestamp of 0 corresponds exactly to 1970-01-01T00:00:00Z. The timestamp 1700000000 corresponds to 2023-11-14T22:13:20Z. Negative timestamps represent dates before the epoch.
Most programming languages store Unix timestamps as a 32-bit signed integer, which can represent dates from 1901-12-13 to 2038-01-19. On 2038-01-19 at 03:14:07 UTC, a 32-bit signed integer overflows — the Y2K38 problem. Modern systems use 64-bit integers, which can represent dates billions of years into the future.
Some systems use milliseconds since the epoch instead of seconds (JavaScript's Date.now(), Java, most REST APIs), and others use microseconds (PostgreSQL timestamps, Python's time.time_ns()) or nanoseconds (Go, Linux clock_gettime). Always check the unit when consuming a timestamp — misidentifying seconds as milliseconds produces dates 1000× wrong.
Unix timestamps are used universally because they are timezone-independent, monotonically increasing (for comparison and sorting), easy to arithmetic with (add or subtract seconds), and compact (a 10-digit number fits in a 32-bit integer). Converting to a human-readable date requires knowing the target timezone — the same timestamp reads differently in UTC, US/Eastern, and Asia/Tokyo.
The 2038 overflow, like Y2K, is a real engineering concern for embedded systems, databases with 32-bit timestamp columns, and older software that has not been updated to 64-bit time representations.
Use quickhelp.dev's Timestamp Converter to convert between Unix timestamps and human-readable ISO 8601 dates, with timezone support.