Developer Tools

Unix Timestamp Converter

A Unix timestamp counts the seconds since the start of 1970 in UTC, which makes it unambiguous to store and unreadable to humans. Two things go wrong in practice: a timestamp in seconds and one in milliseconds look alike but are a thousand-fold apart, and a value read in one timezone means a different local moment than the same value read in another. Both are handled explicitly here.

Runs entirely in your browser — nothing you paste is uploaded.

Right now

1787415209

1787415209 seconds · 1787415209490 milliseconds

Direction
Unit

How to

How to use the Unix Timestamp Converter

  1. 1

    Paste a timestamp

    Enter the number from your log or database. Whether it is in seconds or milliseconds is detected from its magnitude, and can be overridden.

  2. 2

    Read every form at once

    ISO 8601, the UTC string, your local time with its zone, and a plain description like two hours ago are all shown together.

  3. 3

    Or convert the other way

    Enter a date and get its timestamp. A date without a time is treated explicitly as local or UTC rather than being guessed.

  4. 4

    Copy the form you need

    Copy any representation directly. The current timestamp is always shown, updating each second.

Examples

Unix Timestamp Converter examples

The epoch itself

Input
0
Output
1970-01-01T00:00:00.000Z

Zero is the start of the Unix epoch. Seeing it in a database usually means a date field was never set rather than that something happened in 1970.

The 32-bit limit

Input
2147483647
Output
2038-01-19T03:14:07.000Z

The largest value a signed 32-bit integer can hold. Systems still storing timestamps that way will overflow at this moment, which is the Year 2038 problem.

Milliseconds mistaken for seconds

Input
1700000000000
Output
Detected as milliseconds

Read as seconds this would be a date over fifty thousand years away. Thirteen digits means milliseconds, which JavaScript uses natively while most other languages use seconds.

Why use it

What the Unix Timestamp Converter gives you

No unit confusion

Seconds and milliseconds are distinguished by magnitude, so pasting a JavaScript timestamp into a tool expecting seconds no longer produces a date in the far future.

Both timezones at once

UTC and your local time are shown together with the zone named, which is what you need to reconcile a log entry with a user's report.

Human context

A relative description makes it immediately obvious whether a timestamp is recent, ancient, or wrongly in the future.

Runs in your browser

Timestamps come from logs and databases. Nothing is uploaded.

Good to know

Unix Timestamp Converter limitations

  • Local time uses your device's zone and its current daylight saving rules, which may differ from the server that produced the timestamp.
  • Leap seconds are not represented, because Unix time ignores them by definition.
  • Dates before 1970 are negative timestamps, which some systems reject even though they are valid.
  • Historical timezone rules change, so a very old timestamp may display slightly differently from how it appeared at the time.

Summary

Unix Timestamp Converter in short

  • Ten digits means seconds; thirteen means milliseconds.
  • A Unix timestamp is always UTC — a timezone is applied only when displaying it.
  • 2147483647 is the 32-bit limit and overflows in January 2038.
  • A timestamp of 0 usually means a field was never set.
  • Everything runs in your browser.

FAQ

Unix Timestamp Converter questions

How do I tell seconds from milliseconds?

Count the digits. A current timestamp in seconds is ten digits; in milliseconds it is thirteen. JavaScript uses milliseconds while most other languages and databases use seconds, which is why the confusion arises constantly.

Does a Unix timestamp have a timezone?

No. It is always the number of seconds since 1970 in UTC. A timezone only enters when you display it, which is why the same timestamp shows as different wall-clock times in London and New York.

What is the Year 2038 problem?

A signed 32-bit integer holds at most 2147483647, which as a timestamp is 19 January 2038. Systems still storing time that way will overflow to a negative number and read as 1901. Modern systems use 64-bit values and are unaffected.

Why do I keep seeing 1 January 1970?

That is timestamp zero. It nearly always means a date field was never set and defaulted to zero, rather than that anything actually happened at the start of the epoch.

Can a timestamp be negative?

Yes — a negative value is a date before 1970 and is perfectly valid. Some systems reject them anyway, which is why dates of birth are often stored as a formatted date rather than a timestamp.

Why does a date without a time shift by a day?

A bare date like 2024-03-05 is interpreted as UTC midnight by the JavaScript standard, while the same string with a time is interpreted as local. Near either side of the date line that is a whole day out, so this tool asks which you meant.

Are leap seconds accounted for?

No, and that is by design. Unix time pretends every day has exactly 86,400 seconds, so a leap second is absorbed rather than counted. This keeps the arithmetic simple at the cost of being very slightly out of step with astronomical time.

What is ISO 8601 and why prefer it?

The international standard format, like 2024-03-05T14:30:00Z, where the trailing Z means UTC. It sorts correctly as text, is unambiguous about the timezone, and is understood by essentially every system — unlike a format such as 03/05/2024.

Is anything I paste here recorded?

No. The conversion is arithmetic done in your browser. Log lines pasted alongside a timestamp often contain user ids and request paths, and none of it is transmitted.

Discover

Related developer tools