Skip to content
100% in your browser. Nothing you paste is uploaded — all processing runs locally. Read more →

Unix Timestamp Converter

Paste any timestamp or date. The tool detects the format automatically and shows it in every common representation. Live "now" clock at the top, ticking every second.

Current Unix time
UTC
Local:
🔒 100% client-side · uses your browser's native Date · no upload Detected:

What it accepts

What you get back

Every format you might need, side by side:

The seconds-vs-milliseconds confusion

The single most common bug in date code: passing a number meant for milliseconds (or vice versa) to a function expecting the other unit. A 1000× magnitude error gives you a date 30+ years off. See our dedicated guide on this.

Y2038 — the next big rollover

Quick test: paste 2147483647. That's the maximum value of a signed 32-bit integer — and the moment when 32-bit Unix timestamps overflow. It corresponds to 2038-01-19 03:14:07 UTC. Any system still using time_t as a 32-bit value (some embedded systems, old databases, legacy file formats) will roll over to 1901 at that moment. Full discussion →

How this compares to other epoch converters

unixtimestamp.com and epochconverter.com have ranked at the top for "epoch converter" for over a decade. They're fine but slow, ad-laden, and lack auto-detection — you have to tell them whether your input is seconds or milliseconds.

This tool: smaller bundle, auto-detection, live "now" clock, no upload, all your output formats visible at once.

Programmatic equivalents

// JavaScript / Node
Date.now();                                      // ms
Math.floor(Date.now() / 1000);                   // seconds
new Date(1735689600 * 1000).toISOString();       // sec → ISO

// Python
import time
time.time()                                      // seconds (float)
import datetime
datetime.datetime.now(datetime.timezone.utc).isoformat()

// Bash
date +%s                                         // seconds
date +%s%3N                                      // milliseconds (GNU)
date -u -d @1735689600 '+%Y-%m-%dT%H:%M:%SZ'     // sec → ISO

// Go
time.Now().Unix()                                // seconds
time.Now().UnixMilli()                           // milliseconds

Common pitfalls

FAQ

How does it know if I pasted seconds or milliseconds?

By magnitude. A Unix-second timestamp for any year up to ~5138 is under 1011; a millisecond timestamp up to that year is under 1014. The detector picks based on the input's size. If you paste 1735689600 (10 digits) it's interpreted as seconds. 1735689600000 (13 digits) is milliseconds. 1735689600000000 is microseconds, scaled to ms.

What if my number is between the thresholds?

The heuristic uses base-10 magnitude, so a number near 1011 (around year 5138 in seconds) flips interpretation. In practice this is fine because real timestamps are nowhere near that range.

Does it handle ISO 8601 with timezones?

Yes. 2025-01-01T00:00:00Z, 2025-01-01T00:00:00+09:00, and 2025-01-01 all parse correctly. The browser's Date.parse does the work.

Why does the local time differ from ISO 8601?

The local time uses your browser's detected timezone (shown in the bottom status bar). The ISO 8601 output is always UTC.

Can I paste 'tomorrow' or 'next Monday'?

No — the parser only understands ISO 8601, RFC 2822, common date strings (2025-01-01), and numeric timestamps. Natural-language dates aren't supported because Date.parse is unreliable for them.

Is anything sent to a server?

No. The current time comes from Date.now(); conversion uses new Date(...). Both are browser-native. Open DevTools → Network and verify.