Unix Timestamp Converter

Convert between epoch time and readable dates, a line at a time, in UTC and your own zone.

Runs on your deviceDeveloperWorkingNo account needed

What this tool does

A Unix timestamp counts seconds since midnight UTC on 1 January 1970. It has no time zone and no ambiguity, which is why nearly every database, log file and API stores time this way. It is also completely unreadable, which is why this tool exists.

The most common bug in this area is a factor of a thousand. JavaScript's Date.now() returns milliseconds; most other languages and APIs return seconds. Feed one to something expecting the other and you get 1970 or the year 54,000. Here a bare number is read by how many digits it has: up to 10 is seconds, up to 13 milliseconds, up to 16 microseconds, longer than that nanoseconds. A "Numbers are" menu overrides that guess when it is wrong.

Each line comes back as a table row with the epoch value in both seconds and milliseconds, the calendar time, and how long ago or ahead it is. The zone columns are there because the second class of bug lives in them: a timestamp is an absolute instant, but the calendar date it lands on depends on where you are standing.

How to use it

  1. Paste your values, one per line. Bare numbers, ISO strings, a plain 2024-03-01 09:30, or the word now — mixed together is fine.
  2. Pick what to show. UTC and local side by side, or narrow the table to just one of them.
  3. Copy the table. The copy button takes the whole result as tab-separated rows, ready to paste into a sheet.

Processing & privacy

Runs on your device. Your file is processed directly in this browser.

Common use cases

Reading a log file

Turn an epoch column into a time you can line up against an incident.

Debugging an API

Check whether a token's exp claim or a created_at field is what you expected.

Writing a test fixture

Produce a fixed timestamp for a specific date so tests do not drift.

Checking an expiry

The relative column says at a glance whether a stored deadline has already passed.

Questions

Seconds or milliseconds — how does it know?
Purely by digit count, which is a guess rather than a reading. It is right for anything near the present day, and wrong for a far-future 13-digit value in seconds, which it will call milliseconds. The table does not label which unit it chose, so when the result looks a thousand years off, set the unit explicitly in the menu.
Why does the date differ from what I expected?
Almost always time zones. A timestamp is an absolute instant, so the same value is a different calendar date in Auckland and Los Angeles. Both UTC and your local rendering are shown so the offset is visible. A typed date without a zone, such as 2024-03-01 09:30, is taken as your local time.
Which zones can I see?
UTC and whatever zone this browser is set to — there is no picker for a third one. To read a value in some other city's time, change the machine's zone or use the time zone converter.
What is the year 2038 problem?
Systems storing timestamps in a signed 32-bit integer overflow on 19 January 2038. Anything modern uses 64-bit and is unaffected for practical purposes, but old embedded systems and some legacy databases still carry the limit.
Can I convert a date before 1970?
Yes. Those are negative timestamps, and they work correctly here, though some systems reject them.
Is my input sent anywhere?
No. The conversion is arithmetic and runs in this browser tab. Timestamps often appear alongside session identifiers and internal hostnames in the logs people are pasting from.

Related tools