Epoch converter
Paste a timestamp and it works out whether you gave it seconds, milliseconds, microseconds or nanoseconds. Then it shows you the date in UTC, your zone, and any zone you pick.
——Paste a Unix timestamp — seconds, milliseconds, microseconds or nanoseconds. A date string works too.
Year, month and day are required; the rest default to zero.
What the number counts
A Unix timestamp is the number of seconds since midnight UTC on 1 January 1970 — an arbitrary starting line chosen at Bell Labs because it was recent, round and safely in the past. Everything after that is arithmetic. There are no time zones in the number, no daylight saving, no leap seconds and no calendar quirks: 1780000000 names one instant, and every machine on Earth agrees which instant that is. That is the whole reason the format survives.
The complications arrive when you turn it back into a date, because "what time was that" depends on where you are standing. The same instant is one wall-clock time in Chicago and another in Kolkata, and on two days a year one of those wall-clock times happens twice or not at all. The time-zone selector on this page exists for that reason, and the conversion runs against the IANA database your browser already ships with.
Ten digits, thirteen, sixteen, nineteen
Most confusion around timestamps is a units problem. Unix and PostgreSQL count seconds; JavaScript, Java and MongoDB count milliseconds; Python's time_ns() and Go's UnixNano() count nanoseconds; some database drivers land on microseconds. Feed a milliseconds value to something expecting seconds and you get a date in the year 58,000, which at least fails loudly. The reverse — seconds where milliseconds were expected — quietly gives you 1970, and that one has shipped to production more than once.
This page reads the unit off the digit count. Ten or eleven digits is seconds, twelve to fourteen is milliseconds, fifteen or sixteen is microseconds, seventeen or more is nanoseconds. The detected unit is shown above the box so you can see what it decided rather than guessing why the answer looks wrong. It also accepts a plain date string — 2026-08-22T14:00:00Z or 22 Aug 2026 — and gives you the timestamp for it.
The 2038 problem, briefly
A signed 32-bit integer runs out on 19 January 2038 at 03:14:07 UTC. Systems still storing timestamps that way will roll over to 1901. It is not a hypothetical for embedded devices and old C code, and it is the reason 64-bit time_t became standard on Linux and everywhere else that had a choice. If you are designing a schema today, store 64-bit integers or a proper timestamp type, and store them in UTC.
Going the other way
The right-hand panel takes a wall-clock date and gives you the timestamp for it, interpreted in whichever zone is selected. This is the direction that is genuinely awkward to do by hand, because the zone offset depends on the very date you are trying to convert — offsets change with daylight saving, and historically they have changed by government decree as well. The conversion iterates against your browser's own zone data rather than assuming a fixed offset, and it echoes the result back as a wall-clock reading so you can confirm it landed on the time you meant.
The ISO week number is included because week-based reporting is a common source of off-by-one errors: ISO 8601 says week 1 is the week containing the first Thursday of the year, which is not what a naive "divide the day of year by seven" gives you.
Nothing is sent anywhere
Timestamps arrive attached to log lines, audit trails and support tickets, which is exactly the kind of material that should not be pasted into someone else's server. All of this is arithmetic against your browser's own time-zone data, so there is no request to make. If you have data rather than a single value to move around, the JSON to CSV and CSV to JSON tools work the same way.
Common questions
How do I know if my timestamp is in seconds or milliseconds?
Count the digits. A current timestamp in seconds has 10; in milliseconds it has 13. This page detects it automatically and shows you which unit it used, so you can catch the case where the guess is wrong.
What is the Unix epoch?
Midnight UTC on 1 January 1970. Timestamps count forward from that instant, and negative timestamps count backwards from it — -86400 is 31 December 1969.
Does the timestamp itself have a time zone?
No. A Unix timestamp always refers to UTC. Time zones only appear when you convert it into a human-readable date, which is why this page asks you to pick one.
Can it handle dates before 1970?
Yes. Enter a negative timestamp, or use the date fields with an earlier year. Both directions work, subject to the ±273,790-year limit that JavaScript dates impose.
Why does converting a date back give a different second?
Usually a daylight-saving boundary. The hour you entered either occurred twice or did not exist. The result panel echoes the wall-clock reading it actually landed on so you can see which case you hit.
What happens in 2038?
Systems that store timestamps as signed 32-bit integers overflow on 19 January 2038 and wrap around to 1901. Anything using 64-bit storage is unaffected for practical purposes.
Are my timestamps sent to a server?
No. The conversion is arithmetic against the time-zone database already in your browser. The page makes no network requests after it loads and the site carries no analytics.