About Timestamp to Date
Timestamp to Date turns a count of time since the Unix epoch into readable dates, and it takes the unit as an input because that is the variable most often got wrong. Twelve months and a thousand milliseconds differ by a factor of over ten thousand, so a timestamp interpreted in the wrong unit lands either in 1970 or somewhere far in the future.
Three renderings come back at once. The local form uses your device time zone and is the one that matches your wall clock; the ISO form is UTC with an explicit marker; and the UTC text form is the traditional long-format spelling. Having all three together means you can check the same instant from the two angles that matter — what it means as absolute time, and what it means where you are sitting.
The one precision loss is at the finest scale: a microsecond timestamp is divided down to milliseconds before rendering, because the date type works in milliseconds, so the sub-millisecond part is dropped. Values dating from before the epoch are handled as negative numbers, which is the standard convention.
How to use Timestamp to Date
- 1 Enter the timestamp as a whole number.
- 2 Set the unit to whichever the value was recorded in — seconds, milliseconds or microseconds.
- 3 Read the local rendering for everyday use, and the ISO line when you need unambiguous universal time.
Frequently asked questions
How do I tell whether my timestamp is in seconds or milliseconds?
Look at the number of digits. Ten digits is the current era in seconds and thirteen is the same era in milliseconds; a value starting from the same digits with three more is microseconds. Setting the wrong unit is the single most common cause of a date landing decades away.
Why does the local and UTC time differ?
Because they are the same instant expressed in two different frames. The local rendering carries your device offset and the ISO rendering does not, so the gap between them is exactly your offset from universal time.
Are microseconds kept exactly?
No — the value is converted to milliseconds for display, so anything finer than a thousandth of a second is dropped. For measuring elapsed time at that resolution a dedicated high-resolution timer is the right instrument.
Can I reverse this to get a timestamp from a date?
Yes, with the Date to Timestamp converter in the other direction. That tool takes an explicit date, which is also where the time zone question has to be answered, so the pair covers conversion both ways.
Free, online, and private
Free to use
Timestamp to Date is completely free. There is no account to create, no login, and no hidden charge or usage limit.
Runs online in your browser
It is a free online tool that runs entirely in your browser. Nothing to download or install — open the page and start using it right away.
Your data stays private
All processing happens locally on your device. Your input is never uploaded, stored, or tracked, so it never leaves your browser.
How Timestamp to Date behaves in detail
These are the specifics of this implementation — the exact ranges, defaults and fixed settings you are working with.
| Parameter | Value |
|---|---|
| Unit options | three: s, ms and us — multiplied by 1000, used as-is, or divided by 1000 to reach milliseconds |
| Output rows | three: Local (toLocaleString), ISO (toISOString, UTC) and UTC (toUTCString) |
| Default value | Math.floor(Date.now() / 1000) — evaluated when the definition loads, so the prefilled number is the current time, not a constant |
| Precision | milliseconds only; nothing below that survives into any of the three rows |
| Field bounds | none declared — the number field carries only step=1, so any magnitude is accepted |
Compiled from the implementation of this tool and checked against it by itoolnet.
What Timestamp to Date does not do
Knowing the edges of a tool saves more time than another list of its features. These are the cases where it will not do what you might expect.
- The unit is never detected. A 13-digit millisecond value left on the seconds setting is multiplied by 1000 a second time and reported as a year somewhere around 58000 — an implausible result is still rendered as a date.
- An empty or unreadable timestamp falls back to 0 rather than raising anything, so a cleared field calmly reports 1970-01-01T00:00:00.000Z instead of saying that no input was provided.
- The Local row comes from toLocaleString() with no arguments, so both the time zone and the exact layout follow the device; the same number renders differently on two machines, and only the ISO and UTC rows can be compared.
Tested and documented by itoolnet, the team that builds and maintains this site.