A Unix timestamp is the number of seconds since midnight UTC on 1 January 1970. Storing time as a single integer avoids every ambiguity that written dates suffer from: no timezone, no locale, no question about whether 03/04 means March or April. The cost is that a raw timestamp is unreadable to a human.

So you convert, usually while reading a log line, a database column, an API response, or a JWT's exp claim. The value tells you nothing at a glance and the question is almost always simple: when was this, and was it before or after the thing next to it.

The first thing to sort out is seconds versus milliseconds, which is the most common mistake with timestamps. Unix time is defined in seconds, but JavaScript's Date.now returns milliseconds, as do many APIs and languages. Getting it wrong by a factor of a thousand puts your date in 1970 or somewhere around the year 55,000, both of which are at least obvious. This tool detects which unit you pasted by magnitude and tells you what it assumed, so you can override it if the guess is wrong.

Conversion runs in both directions. Paste a timestamp to get the date in your local timezone, in UTC, and as an ISO 8601 string; or pick a date and time to get the timestamp. The relative description alongside each result, something like three days ago, is usually the fastest way to sanity check that a value is what you expected.

It is also worth knowing that a signed 32-bit timestamp overflows on 19 January 2038. Any system still storing epoch seconds in a 32-bit integer will wrap to a negative number and land in 1901.