Unix timestamp converter
Convert timestamps, compare dates, and view across timezones.
Seconds
1789575528
Milliseconds
1789575528576
ISO 8601 UTC
2026-09-16T16:18:48.576Z
The current epoch time sits at the top of the page in three forms — seconds, milliseconds and ISO 8601 UTC — and ticks once a second, so you can grab a fresh value without reloading. Below it, four tabs do the actual work: turn a timestamp into a date, turn a date into a timestamp, show one instant side by side across the timezones you care about, and measure the gap between two timestamps. Seconds and milliseconds are detected automatically from the magnitude of the number, so a 10-digit value and a 13-digit value both resolve to the same moment. Every result carries a copy button, and each converted instant is also rendered as ISO 8601 and RFC 2822 for pasting straight into a log filter, an HTTP header or a test fixture.
Key facts about Unix timestamp converter
| Epoch used | 1 January 1970 00:00:00 UTC, the standard Unix epoch — timestamp 0 is available as a preset |
|---|---|
| Seconds or milliseconds | Auto-detected: a value above 1,000,000,000,000 is read as milliseconds, anything smaller as seconds. In practice 10 digits is seconds, 13 digits is milliseconds |
| Output formats | UTC long form, your local long form, ISO 8601 with milliseconds and Z, and RFC 2822 (the format HTTP Date headers use) |
| Relative label | Every converted instant also gets a human gap — 3 hours ago, in 2 weeks — bucketed by seconds, minutes, hours, days, weeks, months and years |
| Timezone list | 24 named zones from UTC and Honolulu through Kolkata, Shanghai and Auckland, resolved with the browser's own IANA database |
| Default comparison set | New York, London and Tokyo, each removable, with more added from a dropdown |
| Quick presets | 12, including start of today, week, month and year, 1 hour, 24 hours, 7 days and 30 days ago, and 1 hour ahead |
| Landmark values | Unix epoch (0), Y2K (946684800) and the 32-bit overflow point (2147483647, 19 January 2038) are one click away |
| Difference calculator | Takes two timestamps in either unit and reports total seconds and milliseconds plus a days / hours / minutes / seconds breakdown |
| Date entry | A native datetime-local field, read as your computer's local time — not UTC — with Now, Tomorrow and Next week shortcuts |
| Live clock accuracy | Refreshed by a one-second interval, so the displayed value can be up to a second behind the real clock |
| Built-in reference | A collapsible panel covering the epoch definition, seconds versus milliseconds, the 2038 problem and the common second offsets (3600, 86400, 604800) |
What happens to your file
Nothing is converted anywhere but in this tab. The maths is a handful of JavaScript Date operations — divide by 1000, multiply by 1000, hand the result to toISOString or toLocaleString — running in the page that is already loaded. Timezone conversion uses the Intl date-formatting engine built into your browser, which carries its own copy of the IANA timezone database, so even that lookup is local. No timestamp is sent to a server, no API is called on keystroke, and nothing is written to local storage: the zones you add and the values you type disappear on reload. The page keeps working with the network disconnected.
About this tool
- 1
Grab the current epoch
The top strip shows this second in seconds, in milliseconds and as ISO 8601 UTC. Hover either of the first two and use the copy button — you do not need to touch the tabs to get a value.
- 2
Convert a timestamp to a date
Paste the number into the first tab. You do not need to say whether it is seconds or milliseconds; a 13-digit value is detected as milliseconds. Four formats and a relative label appear underneath.
- 3
Convert a date to a timestamp
Switch to the second tab and pick a date and time in the native picker, or use the Now, Tomorrow and Next week buttons. The field is read as local time, so the seconds value you get back already accounts for your offset.
- 4
Compare across timezones
The third tab lists the same instant in every zone you have added. Remove the three defaults and add the offices, regions or data-centre zones you actually work with.
- 5
Measure a gap
Paste two timestamps into the fourth tab — mixed units are fine — and read the elapsed time as total seconds and as days, hours, minutes and seconds.
- 6
Use a landmark when testing
The preset row loads 0, the Y2K instant and the 2038 overflow value, which are the three timestamps worth having in any boundary test.
| Input units accepted | Seconds and milliseconds, positive or negative (negative values are pre-1970 dates) |
|---|---|
| Unit detection threshold | 1e12 — above it the number is treated as milliseconds |
| Date field | HTML datetime-local, minute resolution, interpreted in local time |
| ISO 8601 output | Always UTC with a trailing Z, millisecond precision |
| RFC 2822 output | Browser toUTCString, for example Mon, 14 Nov 2033 22:13:20 GMT |
| Timezone engine | Intl.DateTimeFormat with IANA zone ids — updated with your browser, not by this page |
| Live clock interval | 1000 ms |
| Network | None; the clock comes from your device, so an unsynchronised system clock shows here too |
| Browsers | Any current desktop or mobile browser; datetime-local input renders as a native picker on iOS and Android |
- Count the digits before you argue with a log file: 10 digits is seconds, 13 is milliseconds. A timestamp that resolves to 1970 almost always means milliseconds were read as seconds; one that lands in the year 55000 means the reverse.
- Copy the ISO 8601 line rather than the local one when you are pasting into a ticket. It carries the Z and the millisecond field, so nobody has to ask which timezone you meant.
- The RFC 2822 row is the exact shape an HTTP Date, Expires or Last-Modified header wants, which makes it useful when you are hand-crafting a cache test.
- Load 2147483647 and look at the date: 19 January 2038. Anything storing a timestamp in a signed 32-bit integer breaks there, which is worth checking in old database columns and embedded firmware.
- Negative timestamps work. Paste -86400 to get 31 December 1969 — handy when a system uses a sentinel value below the epoch.
- The difference tab is faster than date arithmetic for answering how long a job ran: paste the start and end timestamps straight out of the log lines.
- Add UTC to your timezone list even if you never travel. Most servers log in UTC, and having it beside your local time stops the mental subtraction.
- The clock on this page is your device clock. If the seconds value disagrees with your server, the machine that is wrong is usually the one without NTP.
- Live epoch clock in seconds and milliseconds
- Automatic seconds / milliseconds detection
- ISO 8601 and RFC 2822 output
- Relative time label
- 24-zone timezone comparison
- Timestamp difference calculator
- 12 date and landmark presets
- Read the timestamp out of a JSON payload, a JWT exp claim or a log line and find out what moment it actually refers to.
- Produce a fixed epoch value for a test fixture, including the 1970, 2000 and 2038 boundary cases.
- Work out how long a batch job took by pasting the start and end timestamps from its output.
- Check what time a scheduled deploy lands for colleagues in other regions before you announce it.
- Convert a date you have been given into the integer a database column or an API query parameter expects.
- Settle whether a stored value is in seconds or milliseconds by converting it both ways and seeing which one is plausible.
Related tools
View allWorks well with this5
More in Utilities12
Updated