How to use it
At the top you’ll see the current Unix time in seconds and milliseconds, updated every second. Use the copy button next to each value to copy it.
On the Timestamp → date tab, paste a number to see the date, weekday and time in the time zone you pick, plus how long ago (or from now) that is. Below that you see the detected unit and the value in seconds and milliseconds, then ISO 8601 (UTC and your chosen time zone) and the HTTP date format (RFC 9110), each with a copy button. If the time zone you chose differs from your device’s, your device time is shown as well, and the HTTP date only appears for years 0–9999. The time zone list includes every IANA time zone your browser knows (Asia/Seoul, Europe/Berlin and so on), and your device’s time zone is selected at first. The current time and time zone are read from your device’s clock and browser settings.
On the Date → timestamp tab, enter a date and time (down to the second), pick the time zone it belongs to, and you get the timestamp in seconds and milliseconds.
What Unix time is
Unix time (also called epoch time or POSIX time) is the number of seconds since 1970-01-01T00:00:00Z (UTC). The POSIX standard defines it as “Seconds Since the Epoch” and always counts a day as 86,400 seconds. So leap seconds are not counted — a day with a leap second is still 86,400 seconds in Unix time. That keeps date math simple, but it means Unix time differs from the real number of elapsed seconds by the number of leap seconds. It shows in this tool too: a leap-second time (23:59:60) never appears. When you turn a timestamp into a date, the seconds are always 0–59, and the Date → timestamp tab doesn’t accept 60 seconds.
A timestamp points to one moment, so it doesn’t depend on the time zone. The same moment has the same timestamp in Seoul and in New York; you only need a time zone to turn it into a wall-clock time. Change the time zone on the Timestamp → date tab and the date and time and the ISO 8601 line for that time zone change, while the seconds and milliseconds values, ISO 8601 (UTC) and the HTTP date stay the same. On the Date → timestamp tab it’s the other way round: the same date and time gives a different timestamp when you switch to a time zone with a different UTC offset.
Telling seconds, milliseconds, microseconds and nanoseconds apart
The same moment has a different number of digits depending on the unit. For times in the 2020s, you’ll usually see:
- Seconds: 10 digits (
1700000000) — Pythonint(time.time()), PostgreSQL and MySQL functions - Milliseconds: 13 digits (
1700000000000) — JavaScriptDate.now() - Microseconds: 16 digits — some databases and logs
- Nanoseconds: 19 digits — languages and logs that use high-resolution clocks
Auto-detection looks at the number of digits in the integer part, ignoring leading zeros: up to 11 digits is seconds, 12–14 is milliseconds, 15–17 is microseconds, and 18 or more is nanoseconds. For values with fewer digits than usual, such as a time before March 1973 written in milliseconds, pick the unit yourself. Digits below one millisecond (in microsecond and nanosecond values, or written as decimals) are cut off in the date display.
A JavaScript Date can hold 8.64 × 10¹⁵ milliseconds (100 million days, about 270,000 years) on either side of 1970. That’s from -271821-04-20T00:00:00Z to +275760-09-13T00:00:00Z; anything outside that range is reported as a range error.
Getting the current timestamp in code
// JavaScript: seconds (Date.now() is milliseconds)
Math.floor(Date.now() / 1000)
# Python: seconds (time.time() is seconds with a fraction)
import time; int(time.time())
-- PostgreSQL
SELECT EXTRACT(EPOCH FROM now());
-- MySQL
SELECT UNIX_TIMESTAMP();
Time zones and daylight saving time
When you turn a date into a timestamp in a time zone with daylight saving time, there are two special cases. On the day it starts, clocks jump forward, so some times don’t exist (for example, 2026-03-08 02:30 in New York). On the day it ends, the same time happens twice (for example, 2026-11-01 01:30 in New York). For a time that doesn’t exist, this tool uses the offset from before the change, which moves it later; for a time that happens twice, it picks the earlier one. Either way, a note appears above the result.
