← All tools

Unix timestamp converter

Epoch ⇄ date, in UTC and local time.

Current epoch

Timestamp → date

Date → timestamp

How to use the timestamp converter

  1. The current epoch ticks along at the top, updating every second — click Copy to grab “now” in Unix seconds.
  2. To decode a timestamp, paste the number under Timestamp → date. Auto-detect treats values of 13 digits or more as milliseconds and anything shorter as seconds, or you can force seconds or milliseconds with the unit dropdown.
  3. Read the result four ways at once: UTC, your local time, ISO 8601 and a relative time like 3 days ago.
  4. To go the other way, pick a date and time under Date → timestamp — it's interpreted in your local time zone — and copy the Unix seconds, milliseconds or ISO 8601 string.
  5. Negative numbers work too: -86400 is one day before the epoch, i.e. December 31, 1969 (UTC).

Common uses

  • Decode timestamps in server logs, database rows and API responses — a created_at of 1750000000 becomes a readable date in every format at once.
  • Check when a JWT expires: the exp and iat claims are Unix seconds, so paste them straight in (or decode the whole token with the JWT decoder).
  • Produce an epoch value for cron jobs, cache expiry or feature-flag cutoffs by picking the date instead of computing it by hand.
  • Debug unit mix-ups: if an app shows January 1970, it almost certainly parsed seconds as milliseconds — paste the raw value here to confirm what it really encodes.
  • Compare an event's UTC time with your wall clock when reading logs from servers in another region.

Tips & limitations

  • Rule of thumb: 10-digit timestamps are seconds (they cover 2001–2286) and 13-digit ones are milliseconds. Auto-detect uses that boundary, so for unusual data — millisecond values from before September 2001 — set the unit explicitly.
  • A Unix timestamp has no time zone: it counts seconds since 1970-01-01 00:00 UTC. Only the human-readable rendering changes with your zone, which is why the UTC and Local rows differ.
  • The relative time uses 30-day months and 365-day years, so treat it as an estimate near month and year boundaries.
  • Only whole numbers are accepted — a decimal like 1750000000.5 shows an error, so trim fractional seconds before pasting.
  • The valid range is what JavaScript's Date supports: about ±273,000 years from 1970. Outside that you'll see an “out of range” error — plenty of room for any real-world log.

How it's built & why it's safe

Conversions are done by JavaScript's native Date object in your browser — toUTCString(), toLocaleString() and toISOString() produce the formatted rows, and a one-second interval keeps the live epoch counter ticking. The date picker's value is read in your local zone, exactly as your browser interprets it. Nothing is sent to a server, nothing is stored, and the page keeps working offline once loaded.

Related tools: Timezone Converter · JWT Decoder · Age Calculator

Further reading: Unix timestamps and time zones, demystified

Frequently asked questions

What is a Unix timestamp?

It's the number of seconds since 00:00:00 UTC on January 1, 1970 — the Unix epoch. Most operating systems, databases and APIs store time this way because a single integer is compact, time-zone-free and easy to compare.

Should my value be seconds or milliseconds?

Count the digits: current dates are 10 digits in seconds and 13 in milliseconds. Unix tools, PHP's time() and most APIs use seconds, while JavaScript's Date.now() and Java's System.currentTimeMillis() return milliseconds.

Why does my timestamp decode to January 1970?

A seconds value was read as milliseconds somewhere — 1.7 billion milliseconds is only about 20 days after the epoch. It's one of the most common date bugs; set the unit to seconds and the real date appears.

What is the year 2038 problem?

Systems that store Unix time in a signed 32-bit integer overflow on January 19, 2038 at 03:14:07 UTC. This converter uses JavaScript's 64-bit numbers, so it handles dates far beyond 2038 — the problem lives in legacy software, not here.

Does it handle dates before 1970?

Yes — negative timestamps count backwards from the epoch, so -1 is one second before midnight on January 1, 1970 (UTC). Paste any negative whole number and it decodes normally.

Is the date I pick treated as UTC or local time?

Local. The picker means “this wall-clock time where I am,” and the tool converts that to the epoch. Check the ISO 8601 output (which ends in Z) to see the same instant expressed in UTC.

Is anything uploaded?

No. Every conversion runs in your browser using the built-in Date object — timestamps you paste never leave your machine.