Unix Timestamp Converter

Convert between Unix epoch time and human-readable dates, in both directions. Free, instant, and it all runs on your device.

Current Unix time

—seconds since Jan 1 1970 UTC

Timestamp → Human date

Human date → Timestamp

Common formats for the entered timestamp

FormatValue
ISO 8601 (UTC)—
RFC 2822—
Local string—
Unix seconds—
Unix milliseconds—

Timezone note: Unix timestamps are always counted from 1 January 1970 00:00:00 UTC and carry no timezone of their own. "Local time" above uses your device's timezone (), while "UTC" shows the same instant in Coordinated Universal Time.

Who reaches for an epoch converter

Unix time counts whole seconds from 1 January 1970 at 00:00:00 UTC, and it turns up everywhere once you start looking. A JWT that will not authenticate has an exp claim you need to read. A Stripe webhook payload carries created as a bare integer. An nginx access log, a MySQL UNIX_TIMESTAMP() column, a Firebase document, a GitHub API response and the iat field in an OAuth token all speak the same dialect. Support staff paste a number from a ticket to work out when a customer actually hit an error, and QA engineers go the other way, encoding a specific date so they can seed test data.

How seconds and milliseconds are told apart

The input only accepts digits, with an optional leading minus sign, and anything else produces a clear error rather than a wrong answer. With Auto-detect selected, the rule is simple: if the absolute value is 1e12 or larger it is treated as milliseconds and used as is, otherwise it is treated as seconds and multiplied by 1000. That threshold is chosen because second based timestamps for present day dates are ten digits while millisecond ones are thirteen. Auto-detect can still guess wrong for dates far in the past or far in the future, which is exactly why the Seconds and Milliseconds radio buttons are there to override it.

Local time, UTC and what each panel shows

A Unix timestamp carries no time zone of its own. It names an instant, and a time zone is only applied when that instant is displayed. The result grid therefore shows the same moment twice: once formatted in your device time zone, which is detected and named on the page, and once in UTC. Alongside those you get a relative label such as "3 hours ago" or "in 2 days", built from a ladder of year, month, week, day, hour, minute and second, plus ISO 8601 and RFC 2822 strings for pasting into code or an email header.

The reverse panel works the other way. The date and time picker is read as local time, so choosing 09:00 on a Monday means 09:00 where you are sitting, and the tool reports the matching seconds value, milliseconds value and UTC equivalent. The picker is pre filled with the current moment to save you a step, and the live clock at the top keeps ticking with copy buttons for both seconds and milliseconds.

A worked example

Paste 1700000000 with Auto-detect on and press Convert. Because it is under the 1e12 threshold it is read as seconds, giving 1700000000000 milliseconds. The UTC row reads 2023-11-14 22:13:20 UTC, ISO 8601 reads 2023-11-14T22:13:20.000Z and RFC 2822 reads Tue, 14 Nov 2023 22:13:20 GMT. Someone in Sydney sees a local time of Wed 15 Nov 2023, 09:13:20 am, because that zone was eleven hours ahead of UTC on that date. Same instant, two labels.

Edge cases and limits

  • Fractional timestamps such as 1700000000.5 are rejected, since the field requires whole digits only.
  • Microsecond timestamps, common in Python logging and ClickHouse, are sixteen digits and will be read as milliseconds, landing you tens of thousands of years into the future. Divide by 1000 first.
  • JavaScript dates span roughly 8.64e15 milliseconds either side of 1970, about 275,760 AD. Beyond that the tool reports the value as out of range.
  • Unix time ignores leap seconds by design, so a timestamp is not a true count of elapsed SI seconds since 1970.
  • Local formatting follows your operating system settings, including daylight saving for the date in question.

Everything happens in your browser and nothing is uploaded to a server. Conversions rely on the built in Date object, so the page keeps working offline once it has loaded.

Nearby tools

Converting costs you nothing and there is no cap on how many timestamps you decode, no login and no email address to hand over. The page is ad supported, which is what keeps it open to everyone.

Questions

What exactly is a Unix timestamp?

It is a count of seconds elapsed since 00:00:00 UTC on 1 January 1970, leap seconds excluded. Because it is a single integer with no zone attached, it is unambiguous and easy to store or compare.

How does auto-detect decide between seconds and milliseconds?

It compares the magnitude of your number against one trillion. Anything at or above that is treated as milliseconds, anything below is treated as seconds. You can override the guess with the radio buttons.

Why does local time differ from the UTC row?

Both rows describe the same instant. The local row applies your device time zone and its daylight saving rules for that date, while the UTC row applies no offset at all.

Can it handle dates before 1970?

Yes. Enter a negative number and you get the matching date, for example -86400 is 31 December 1969. Be aware that some databases and APIs will not accept negative epoch values.

My timestamp has sixteen digits and gives a silly year. What went wrong?

That is microseconds, not milliseconds. Divide it by 1000 before pasting it in, or by 1,000,000 and select Seconds.