Skip to content

Unix Timestamp Converter

Convert Unix timestamps to readable dates and back, with auto-detection of seconds vs milliseconds and a live current timestamp.

In your browseryour files never leave your device.

Learn more
Current Unix Timestamp · UTC+03:001779414541
⌘K focus

About this tool

A Unix timestamp counts seconds since January 1, 1970 UTC — the Unix epoch. Almost every system stores time as an integer offset from that moment, but the unit varies: classic Unix uses seconds (a 10-digit number around 1.7 billion in 2026), JavaScript Date.now() uses milliseconds (13 digits, ~1.7 trillion), some databases use microseconds (16 digits), and others store it as a 64-bit nanosecond count (19 digits). This tool converts in both directions and auto-detects the unit by length — if your input is 13 digits or more it is treated as milliseconds, otherwise seconds. Output includes UTC, your local timezone, ISO 8601 (the format you want in JSON), and a relative description ("3 hours ago"). A live counter at the top shows the current Unix time, refreshed every second.

How to unix timestamp converter

  1. Pick a direction

    Use the timestamp input to convert epoch to date. Use the date input to convert date to epoch. Both work independently and simultaneously, so you can have both filled with different values to compare.

  2. Paste or type

    For timestamp input, either 10-digit seconds, 13-digit milliseconds, or any length number — the tool auto-detects which based on the digit count. For date input, use the date/time picker which respects your local timezone.

  3. Read all four formats

    UTC, local time, ISO 8601, and relative time appear simultaneously. Pick the one your destination expects. ISO 8601 is almost always the right answer for new code; local time is for human display; UTC is for log correlation; relative is for "is this recent?" sanity checks.

  4. Copy

    Each output has a copy button. One click sends it to your clipboard. The Clipboard API works on all modern browsers including mobile.

Features

Bidirectional conversion

Paste a timestamp and get a date, or pick a date and get a timestamp. The two input fields are independent so you can convert in both directions in the same session without losing your previous work. The conversion is symmetric — round-tripping a timestamp through to a date and back gives you the same value, modulo any precision loss at the millisecond boundary.

Auto-detect seconds vs milliseconds

A 10-digit input is treated as Unix seconds. A 13-digit input is treated as Unix milliseconds. This is the unit convention almost everyone uses — current Unix seconds is around 1.75 billion (10 digits, will be until November 2286), current Unix milliseconds is around 1.75 trillion (13 digits, will be until October 4660 AD). The auto-detection is by length, not by value, so a 1-second-since-epoch input (8 digits, year 1970) gets interpreted correctly as seconds, not as 1 millisecond.

Multiple output formats

For a given timestamp you see UTC (the canonical reference), your local timezone (what your users see), ISO 8601 (what your JSON should use), and a relative description ("3 hours ago", "in 5 days"). Each has its own copy button. The variety means whichever format your downstream consumer wants, you can grab it without doing a format conversion separately.

Live current timestamp

A counter at the top shows the current Unix time in seconds, updating every second. Click to copy. Useful when you need "right now" as a timestamp for a token, a log entry, a test fixture, or a database INSERT. The live update means you do not paste a stale value from earlier in your session.

Privacy & security

All conversions are arithmetic on numbers and string formatting on the results — JavaScript's Date object handles it in your browser. The current timestamp ticker reads Date.now() once a second; your local timezone comes from Intl.DateTimeFormat which inherits from your OS. Nothing leaves the page. Useful for debugging timestamps that ride alongside identifying information (user IDs in log entries, session times in audit trails) since the surrounding context stays in your tab.

Frequently asked questions

Why is the current timestamp 10 digits and not 13?
The tool defaults to displaying Unix seconds (10 digits in 2026) because that is the classic Unix format and what most APIs use. JavaScript Date.now() returns milliseconds (13 digits), so you multiply by 1000 to convert from seconds to milliseconds. PostgreSQL extract(epoch from now()) returns seconds; Python time.time() returns seconds as a float; Go time.Now().Unix() returns seconds. Different stacks default to different units; check your target before pasting a 13-digit number into a field expecting 10.
What is the Year 2038 problem?
A signed 32-bit integer can hold values up to 2,147,483,647. As a Unix timestamp in seconds, that maxes out at 03:14:07 UTC on January 19, 2038. Older systems that store timestamps in INT will overflow and wrap to negative numbers, mis-displaying dates as 1901. The fix is to use BIGINT (64-bit) or to use ISO 8601 strings. Modern systems mostly migrated years ago — anything written this decade is fine. Embedded systems, old databases, and some C code on 32-bit systems are still at risk. This tool uses JavaScript numbers (64-bit floats), which handle dates well past 2038 — you can paste a future timestamp and it converts correctly.
How does this handle timezones?
Internally, everything is UTC — Unix timestamps are timezone-independent by definition, they are just a count of seconds since a fixed reference moment. The display shows both UTC (the canonical reference) and your browser's local timezone (read from your OS via the Intl API). When converting a date to a timestamp, the date you pick is interpreted in your local timezone and converted to UTC seconds internally. So if you are in PST and pick "2026-05-15 09:00", the timestamp represents 09:00 PST = 17:00 UTC, and the timestamp is the same regardless of where the next reader is.
Daylight saving time?
Unix timestamps do not change at DST transitions — they are a continuous count of seconds. Your local-time display does change because your timezone shifts ±1 hour at the spring-forward and fall-back. A timestamp from 2 AM on the day clocks "fall back" can map to two different local times (the first 2 AM and the second 2 AM, an hour apart in UTC), which is why DST-aware date pickers display them with timezone offsets to disambiguate. Stick to UTC for storage; convert to local for display.
Why does my timestamp seem off by a few hours?
Almost always a seconds-vs-milliseconds confusion or a timezone misread. 1700000000 in seconds is November 14, 2023, 22:13 UTC; 1700000000 in milliseconds is January 20, 1970, 00:13:20 UTC. The 10/13-digit auto-detection usually catches this. The other common case is interpreting a UTC timestamp as if it were local time — always check which timezone your source is in. If you see "your timestamp" off by exactly your local UTC offset, that is the problem.