Unix Timestamp Converter

Convert epoch timestamps to readable dates and turn dates back into timestamps. The current time updates every second, and all conversions happen locally in your browser.

Current Unix time

Seconds since epoch—
Milliseconds—
Your local time—
UTC—

Timestamp → date

Date & time → timestamp

The date and time you pick is interpreted in your browser's local time zone (detecting…). The resulting timestamp is the same instant everywhere; only its display changes with time zone.

What is a Unix timestamp?

A Unix timestamp — also called epoch time or POSIX time — is simply a count of the seconds that have elapsed since a fixed starting point: midnight at the beginning of 1 January 1970, Coordinated Universal Time (UTC). That moment is the Unix epoch: a timestamp of 0 means exactly the epoch, 86400 means 2 January 1970, and current timestamps are ten-digit numbers past 1.7 billion. Because a timestamp is just a number, it is compact to store, trivial to sort, and unambiguous to compare — subtract two to find the gap between events. Databases, log files, and APIs all lean on this convention, so translating between timestamps and human dates is a daily debugging need.

Seconds versus milliseconds

The classic Unix timestamp counts seconds, but not every system uses the same unit, and mixing units up is the single most common timestamp bug. JavaScript's Date.now() and most web APIs return milliseconds — a 13-digit number — while other platforms and log formats may use microseconds (16 digits) or nanoseconds (19 digits). A quick rule of thumb: a current timestamp in seconds has 10 digits, in milliseconds 13. This converter auto-detects the unit from the magnitude of the number you enter — values of 100 billion or more are treated as milliseconds — and you can override the detection with the unit selector whenever you know better than the heuristic.

Time zones: one instant, many readings

A timestamp itself has no time zone. It identifies a single instant in time, the same everywhere on Earth. Time zones only enter when you display that instant as a wall-clock reading: the moment written as 12:00 UTC is 20:00 in Shanghai and 07:00 in New York on the same day. Most conversion bugs trace back to treating a local reading as if it were UTC or the reverse, which is why this page always shows both renderings plus the ISO 8601 form. When you convert a date back to a timestamp here, the picker value is interpreted as your local time, as the note under the form states.

Leap seconds and other fine print

Real UTC occasionally inserts a leap second to stay aligned with Earth's rotation, but Unix time ignores them: it assumes every day has exactly 86,400 seconds. For everyday purposes that simplification is harmless, but it means Unix time is not a perfectly uniform measure of physical time. Two other practical notes: negative timestamps represent dates before 1970 and work fine here, and older 32-bit systems store timestamps in a signed 32-bit integer that overflows on 19 January 2038, the famous Year 2038 problem — one reason modern systems use 64-bit values.

Where timestamps show up in practice

You will meet timestamps in server and application logs, where correlating events across machines depends on them all meaning the same thing; in JWT access tokens, whose exp claim is a timestamp in seconds after which the token must be rejected; in cookies and cache headers; and in database columns storing creation times. A classic debugging session: a log shows a session expiring at some large number, you paste it here, and discover one component set the expiry in milliseconds while another read it as seconds.

How to use this converter

The top panel shows the current timestamp ticking once per second, in both seconds and milliseconds, with copy buttons for each. To convert, paste any timestamp into the first form — auto-detection handles the unit — and read off the local time, UTC time, ISO 8601 string, and how long ago (or until) that moment is. To go the other way, pick a date and time in the second form and get the exact seconds and milliseconds values to paste into your code, query, or token payload.

Frequently asked questions

Why does my converted date look off by several hours?

Almost always a time zone mismatch: the timestamp is correct, but it is being displayed in a different zone than you expected. Compare the UTC line on this page with your system's output, and check whether the source assumed UTC while your code assumed local time.

How do I know if a timestamp is in seconds or milliseconds?

Count the digits. Around the present day, seconds produce 10 digits and milliseconds produce 13. If you convert and land in 1970 or in a year tens of thousands ahead, the unit is wrong — switch it and convert again.

What does a timestamp of 0 mean?

Exactly the epoch: 1 January 1970, 00:00:00 UTC. Seeing 0 (or a 1970 date) in real data usually means a value was never set, a conversion failed silently, or a unit mix-up shrank a real value to nothing.

Are timestamps affected by daylight saving time?

No. Timestamps march forward uniformly and know nothing about DST. Daylight saving only affects how a timestamp is rendered as a local wall-clock time — which is why storing timestamps and converting at display time is the safe pattern.

Explore more tools