Converts a Unix timestamp to a readable date in both UTC and your local timezone, with a relative description such as three days ago, and converts a date back to a timestamp.
A Unix timestamp counts from midnight UTC on 1 January 1970 and carries no timezone of its own. The unit is inferred from magnitude rather than digit count — seconds, milliseconds, microseconds and nanoseconds are all in circulation, and the same digits mean wildly different moments depending on which is meant. Both the UTC value and your local rendering are shown side by side, because the difference between them is the source of most timestamp confusion and hiding one of them is what allows the confusion to persist.
Reading timestamps correctly
-
UTC is the value; local time is a rendering:
the same timestamp shows as different clock times on two machines. Neither is wrong and the underlying number is identical.
-
Magnitude decides the unit:
a current timestamp is about ten digits in seconds and thirteen in milliseconds. Guessing wrong moves the date by decades.
-
Negative timestamps are dates before 1970:
they are valid and handled here, though some systems reject them outright.
-
Unix time ignores leap seconds:
it is a count of a nominal 86,400 seconds per day rather than true elapsed time. This matters for precision timing and very little else.
UTC is the value; local time is only ever a rendering of it
The [msm_tool slug="epoch-converter"] shows a timestamp's UTC value alongside its local rendering deliberately, because a Unix timestamp itself carries no timezone at all — the same number displays as different clock times on two different machines, and neither reading is wrong, since the underlying number they were both computed from is identical. Hiding either figure is exactly what lets that confusion take hold in the first place.
A relative description does work the raw number cannot
Alongside both time zones, a phrase like "three days ago" translates the raw number into something immediately legible without doing mental arithmetic against the current date. The precise UTC and local figures stay available right next to it for anything that actually needs the exact value rather than the approximate sense of it.
Magnitude decides the unit, not the number of digits alone
Seconds, milliseconds, microseconds and nanoseconds are all genuinely in circulation, and the same string of digits means a wildly different moment depending on which one applies — a plain digit count is not reliable on its own, which is why the unit is inferred from magnitude and then stated explicitly alongside the result rather than left for a wrong guess to pass unnoticed.
Negative timestamps are dates before 1970, and they are valid
A negative value represents a genuine moment before the Unix epoch and is handled correctly here, even though some systems reject negative timestamps outright as though they were invalid input rather than a normal part of the format.
Leap seconds are ignored, by definition
Unix time counts a nominal 86,400 seconds in every day rather than tracking true elapsed time including the leap seconds occasionally inserted to keep clocks aligned with the Earth's rotation. That distinction matters for precision timing applications and essentially nowhere else that an ordinary reader of a timestamp would ever notice.