What a Unix timestamp is
A Unix timestamp is the number of seconds elapsed since 1 January 1970 at 00:00 UTC, ignoring leap seconds. Because it is a single number in UTC, it is unambiguous: it carries no time zone, so the same value means the same instant everywhere. That is why databases, logs and APIs store timestamps this way.
This tool converts a timestamp to a readable date in your local time zone and back again, in both seconds and milliseconds.
Seconds or milliseconds?
The classic Unix timestamp is in seconds, but many APIs and JavaScript return milliseconds, which produces a value three digits longer. If a timestamp converts to a date tens of thousands of years in the future, it is almost certainly milliseconds being read as seconds.
Frequently asked questions
Why does the timestamp start in 1970?
The Unix epoch, 1 January 1970, was chosen as a convenient reference point when the Unix operating system was designed. Timestamps are offsets from that instant, so a value before it is simply negative.
Is a timestamp in seconds or milliseconds?
Both exist. A seconds timestamp today is ten digits; a milliseconds timestamp is thirteen. If the converted date is absurdly far in the future, you are reading milliseconds as seconds.
Does a timestamp include a time zone?
No, that is the point. A Unix timestamp is an absolute instant in UTC. The time zone only enters the picture when you format it for display, which is why the same value shows different clock times around the world.
What is the year 2038 problem?
Systems that store a Unix timestamp in a signed 32-bit integer overflow on 19 January 2038, wrapping to a negative value. Modern systems use 64-bit integers, which will not overflow for billions of years.