ToolsForWeb

Saved

Tap ☆ on any tool to keep it here.

toolsforweb

Timestamp Converter

Convert between Unix timestamps and human-readable dates in any timezone.

Runs in your browser — nothing is uploaded

Loading tool…

Results are provided as is, for general information. Check anything important before relying on it. See the Terms of Use.

About this tool

Paste a Unix timestamp or a date and get both directions at once: epoch seconds and milliseconds, the ISO 8601 string, a full readable date in UTC and in a timezone you pick, the weekday, and how long ago (or ahead) the moment is. A bare number is treated as an epoch value and its unit is autodetected by magnitude — under 1e11 is seconds, then milliseconds, microseconds and nanoseconds — so a 10-digit and a 13-digit number for the same instant resolve identically. Anything that is not a bare number is handed to the browser's date parser (ISO 8601, RFC 2822, and the other formats it accepts); the literal word "now" uses your clock. Everything runs in your browser.

How it works

Unix time = seconds since 1 January 1970 00:00:00 UTC
Milliseconds = seconds × 1,000

A Unix timestamp counts seconds from the epoch and has no time zone; the zone only matters when you display it. Ten digits usually means seconds and thirteen means milliseconds.

Worked examples
QuestionWorkingAnswer
What date is Unix timestamp 1700000000?1,700,000,000 seconds after the epoch2023-11-14T22:13:20.000Z, a Tuesday

When to use it

Turning a log or database timestamp into a readable local or UTC date.
Getting the epoch value for a date to drop into an API call, a query or a config file.
Checking what time a `exp` or `iat` claim, a cron log line or a cache header actually refers to in your timezone.
Confirming which weekday a past or future date falls on.

Questions

How does it know if my number is seconds or milliseconds?

By magnitude. A value under 100 billion (1e11) is read as seconds, under 1e14 as milliseconds, under 1e17 as microseconds, and larger as nanoseconds. Timestamps for any date between roughly 1973 and the year 5138 have 10 digits in seconds and 13 in milliseconds, so the split is unambiguous in practice.

Why does the "relative" time keep changing?

It is measured against the moment you are looking at the page, not a fixed reference, and it is recomputed on every render. "2 minutes ago" becomes "3 minutes ago" as real time passes.

Are daylight-saving and historical timezone changes handled?

Yes, as well as your browser does. The UTC and per-timezone strings are formatted with the built-in Intl date APIs, which carry the IANA timezone database — including DST rules and historical offset changes — so a summer date and a winter date in the same zone show the correct different offsets.

What counts as an invalid input?

An empty field, text that is not a recognisable date ("banana"), or a number so large the resulting date falls outside the range JavaScript can represent. Each of these shows an error instead of a guess.

What is a Unix timestamp?

Seconds elapsed since 1 January 1970 00:00:00 UTC — the reference point computers standardize on for storing time. The number is identical on every server on Earth regardless of local time zone, which is why logs, APIs and databases persist it and render a local rendering only at display time. The tool exists to translate between that neutral number and the human rendering of your choice.

How does it know seconds from milliseconds?

It counts digits — magnitude-based autodetection. Under 1e11 reads as seconds, under 1e14 as milliseconds, under 1e17 as microseconds, beyond that as nanoseconds. Every date in living memory has 10 digits in seconds or 13 in milliseconds, so the bands never overlap in practice; the chosen unit is displayed with the result, so the detection is checkable rather than hidden.

Can it handle negative timestamps — dates before 1970?

Yes. The epoch is a signed count, so a leading minus sign resolves to pre-1970 dates — 1969 and back render normally. The eventual limit is JavaScript's Date range (roughly ±273,000 years from 1970), past which the tool reports the value as unrepresentable instead of printing a wrapped nonsense date.

Why is my date showing the 'wrong' hours?

It is a time-zone reading, not a wrong instant. The tool always shows UTC alongside a zone you pick, precisely so the two can be read against each other: one instant is 22:00 in UTC, 23:00 in Paris and 15:00 in Los Angeles at the same moment. If a log timestamp looks shifted by hours, the epoch is usually right and the zone you are reading it through has changed.

What is the 'Z' in 2026-10-01T14:30:00Z?

The zero-UTC-offset marker — 'Zulu' in radio alphabet — meaning this ISO 8601 string names an absolute instant with no local-time ambiguity. That is the format's point: no AM/PM, no day/month order argument, zone declared. Databases, APIs and log pipelines accept it everywhere, which is why the tool surfaces the ISO string for copying.

Does 'now' come from my clock or a server?

From your device — the tool loads no time from any server. The 'now' button and the relative figure ("3 minutes ago") measure against the machine you are on, recomputed as the page sits open. On a correctly clocked device that is exact; if your device clock is skewed, everything here skews with it honestly.

Related tools