ToolsTray

Star a tool to keep it here.

Unix Timestamp Converter

Turn a Unix timestamp into a readable date or a date back into epoch seconds. Auto-detect sorts 10-digit from 13-digit.

ISO-8601

Type a timestamp to begin.

Epoch seconds
Epoch milliseconds
UTC
Local
Relative

Read the picker in

A datetime-local value carries no zone; this says which one the wall clock was read in.

How to use

  1. Put the number in Unix timestamp and leave Unit on Auto-detect, and the readings fill in before you have finished pasting. Typing stops the ticking clock; Use current time is a toggle that starts it again, or stops it while it runs.
  2. To go from a date to a timestamp, use Date and time, a native picker that goes down to the second, and choose the zone it is read in. Nothing needs pressing; every reading follows whichever box you typed in last, and the address bar keeps the timestamp, the unit and the zone.

About this tool

Epoch numbers are unreadable on purpose. 1609459200 is a fine way for a database to store an instant and a hopeless way for a person to read one. The page opens on the current second, ticking, and the moment you paste that number into the Unix timestamp box you get 2021-01-01T00:00:00.000Z, plus the same moment spelled out with its weekday in UTC and again in whatever zone your device is set to, each reading with its own copy button.

Unit sits on Auto-detect, and the rule behind it is magnitude. Under 1,000,000,000,000 is seconds, then milliseconds up to 1,000,000,000,000,000, then microseconds, then nanoseconds. That covers the 10-digit value Unix tools and Postgres hand you, the 13-digit one from Date.now() and most JSON APIs, and the 16- and 19-digit values from tracing systems. When the guess lands outside 1970 to 2100 and another unit lands inside, the page names that other reading and the dropdown to switch to.

The ISO-8601 line leads, and five readings sit under it: the epoch restated in seconds, the same in milliseconds, a full UTC date line, that date again in local time, and a relative phrase in your own language. The relative one is deliberately coarse. It counts in seconds, then minutes, then hours, then days, and stops there, so a timestamp from January 2021 reads as something like 2,071 days ago rather than about five years ago. Commas, spaces and underscores in a paste are stripped and the field says so; hex and exponent forms convert and are named.

The Date and time picker is the same instant from the other side: type in either box and the other follows. A datetime-local value carries no zone, so Read the picker in says which one it means, your device's zone or UTC. Enter 2026-08-12 15:30 read in Asia/Kolkata and you get 1786528800; read as UTC, the same wall clock is 1786548600, five and a half hours later. A wall clock the zone skips or repeats on a clock-change night is said at the picker.

Debugging is where I end up here most. A log line with a bare integer in it, an exp claim out of a JWT, a webhook payload carrying created_at as a number. Two edges are worth having in your head. Signed 32-bit systems break at 2147483647, which this will happily show you as 19 January 2038 at 03:14:07 UTC. And the far end of what JavaScript's Date can hold is the year 275760; past that the field says so and the last answer holds instead of a wrong one appearing.

Good to know

  • Auto-detect is a digit-count rule, not a sanity check. A millisecond value from before September 2001 falls under the 1,000,000,000,000 line and gets read as seconds, which lands you in the year 33658. Set Unit by hand when you are handling old millisecond timestamps.
  • Leap seconds do not exist here, the same way they do not exist in Unix time. Every day is exactly 86,400 seconds, which is what your database and your runtime assume as well. Twenty-seven leap seconds have gone in since 1972 and Unix time counted none of them.

Things people ask

What does a 13-digit timestamp mean?

It is milliseconds since 1970-01-01 00:00:00 UTC rather than seconds. Date.now(), most JSON APIs and anything that came through JavaScript hand you this form. Drop the last three digits and you have the 10-digit seconds value that Unix tools use. Auto-detect handles the difference for you at the 1e12 mark.

How do I convert a date to a Unix timestamp?

Use the Date and time picker. Set the day, hour, minute and second, choose whether that wall clock is your device's zone or UTC, and the Unix timestamp box and every reading follow. Nothing needs pressing.

Why is the Local card an hour off from the UTC one?

An epoch value is one instant with no zone attached to it. The UTC card is that instant at the prime meridian; the Local card is the same instant rendered in the zone your operating system reports, daylight saving included. Each card prints its own zone label on the end of the line.

What breaks in 2038?

Anything storing Unix time in a signed 32-bit integer runs out of room at 2147483647, which is 2038-01-19 03:14:07 UTC, and wraps to a negative number one second later. Paste that value here and you will see the date it maps to. The converter itself uses JavaScript numbers and keeps going well past it, so the thing to check is the system you are debugging, not this page.

Can I enter fractional seconds in the date picker?

The picker steps in whole seconds, so a date picked there always lands on a whole second. Sub-second precision only survives in the other direction: paste a 13-digit epoch and the ISO line keeps all three decimal places.

Missing something in Unix Timestamp Converter? Suggest a feature →

Tell someone who needs this.