MultiConvers

Unix Timestamp Converter

Convert Unix seconds since 1970-01-01 00:00:00 UTC into a labelled UTC and local date/time, or the other way: a date and time you mark as UTC or local wall clock into Unix seconds. Thirteen-digit pastes from `Date.now()` are treated as milliseconds, not as a date in the year 50,000.

How to use

  1. Paste a timestamp to go Unix → date. Values whose absolute magnitude is at least 10^12 are read as milliseconds and labelled that way.
  2. Or pick a calendar date and a clock time, then choose whether those fields are UTC or this browser’s local zone, to go date → Unix seconds.
  3. Read both UTC and local when converting from a timestamp. The zone is always written next to the clock so the two cannot be confused.
  4. Use Day of Week if you only need the weekday of a civil date, or Time Duration for hours between two clock faces. This page is the epoch converter.

How it works

Unix time (POSIX time) counts whole seconds from the 1970-01-01 UTC midnight, skipping leap seconds. Instant 0 is 1 January 1970, 00:00:00 UTC — the example on this page. Converting a number to a date builds that UTC instant, then also shows the same instant in the browser’s local time zone. Evening in Tokyo and morning in New York can share a Unix second and disagree on the civil date; both displays are labelled so you can see which one you meant.

The reverse path needs a timezone choice. “9 March 2024, 15:00” is a different Unix second in UTC than in America/New_York. The page will not guess. Local means the zone this browser is set to, not a city picker.

JavaScript’s `Date.now()` and many logs emit milliseconds. A 13-digit value such as 1700000000000 is 1.7×10^12, so it is divided by 1000 and shown as 1700000000 seconds → 14 November 2023, 22:13:20 UTC. Reading it as seconds would land thousands of years ahead. Values at or above 10^11 but below 10^12 stay seconds and are flagged as suspiciously large so a 12-digit paste is not silently “fixed.”

Leap seconds are ignored, as on most programming clocks. Historical dates the JavaScript `Date` object cannot represent will fail rather than invent a proleptic result. This is not a calendar-day offset tool: adding N days belongs on Days From Today.

Negative Unix seconds are valid instants before 1970. They are still UTC-based. The converter does not handle TAI, GPS time, or Excel serial dates.

Formula

UTC datetime = 1970-01-01 00:00:00 UTC + Unix seconds
Unix seconds = floor(milliseconds since epoch ÷ 1000)
If |value| ≥ 10^12: interpret as milliseconds

Worked examples

  • The epoch

    0 → January 1, 1970, 00:00:00 UTC

  • A millisecond paste

    1700000000000 → treated as milliseconds → 1700000000 seconds → 14 Nov 2023 22:13:20 UTC

Useful notes

  • Always shown with a time zone label (UTC or the browser’s local zone).
  • Millisecond timestamps (≥ 10^12) are detected and converted; they are not silently read as seconds.
  • Unix time ignores leap seconds, like most language runtimes.

FAQ

Is Unix time UTC?

The instant is defined from UTC. Display can be UTC or local; this tool shows both when converting from a timestamp.

Why does my 13-digit number look like the wrong century?

JavaScript often uses milliseconds. This converter treats values ≥ 10^12 as milliseconds so you do not get a date thousands of years ahead.

Does this handle leap seconds?

No. Unix time ignores leap seconds, like most programming clocks. That is a documented limitation, not a bug in this page.

What about negative timestamps?

They are instants before 1 January 1970 UTC. Conversion still uses UTC, then shows local time for that instant.

Is a 12-digit number milliseconds?

Not automatically. Only |value| ≥ 10^12 is read as milliseconds. Smaller but huge values stay seconds and may be flagged as likely milliseconds.

Related tools

See all Developer tools.