Unix Timestamp Converter

Convert between Unix epoch timestamps and human-readable dates. A Unix timestamp counts seconds elapsed since 1970-01-01 00:00:00 UTC, ignoring leap seconds.

Seconds, milliseconds, and beyond

The unit is a frequent source of bugs because languages disagree. Unix tooling and most C-derived APIs use seconds; JavaScript's Date.now() and Java's System.currentTimeMillis() use milliseconds; Go's UnixNano and many databases use nanoseconds. A quick heuristic: a present-day timestamp in seconds has 10 digits, in milliseconds 13. A date landing in 1970 almost always means milliseconds were parsed as seconds.

The year 2038 problem

A signed 32-bit integer counting seconds overflows on 19 January 2038, wrapping to 1901. Most 64-bit systems have long since widened time_t, but 32-bit embedded devices, older file formats, and database columns typed as 32-bit integers remain exposed. It is the direct structural descendant of Y2K.

Timestamps carry no timezone

An epoch timestamp is always UTC; it has no timezone and no notion of local time. Timezone belongs to display, applied when the instant is formatted. Storing local time and reconstructing the instant later is a reliable way to lose an hour twice a year to daylight saving.

All developer tools