Convert Unix timestamps to human dates and back. Auto-detects seconds vs milliseconds. Your data never leaves your browser.
Unix Timestamp
Pro tip
Debugging timestamps in CI/CD logs? Git AutoReview traces time-related bugs across config files and flags timezone mismatches in your PRs.
Paste a Unix timestamp and the tool converts it to a human-readable date instantly — no button click needed. It auto-detects whether your timestamp is in seconds or milliseconds. Switch to Date → Epoch mode with the toggle or Ctrl+Enter to go the other way.
The live clock at the top shows the current Unix timestamp ticking in real time. Click it to paste into the input field.
We built this because every debugging session at 3 AM eventually hits a wall of raw epoch numbers — and the human brain was not designed to read 1711641600 at a glance. API responses, database records, JWT expiration claims, CI/CD pipeline outputs, they all store time as seconds since January 1, 1970 UTC, and when a production incident is burning you need to parse those numbers fast, not do mental division by 86400 to figure out which day it was.
The timezone part is what actually burns people. A deployment fails, the logs show 1711641600 — is that your local midnight or UTC midnight? We kept running into this ourselves with cron jobs, cache TTLs, and certificate expiration checks, so we made the tool show both local and UTC simultaneously. No more guessing which timezone the server was thinking in.
We see this mistake more than almost any other in cross-platform code: someone passes a seconds-based epoch into a function expecting milliseconds, and the date comes back as January 1970. Or the reverse — a milliseconds value read as seconds points to the year 56000. Backend systems (PostgreSQL, MySQL, Python time.time()) use 10-digit seconds. JavaScript Date.now() and Java System.currentTimeMillis() use 13-digit milliseconds. This tool auto-detects which one you pasted so the conversion is correct either way.
The Linux kernel merged Y2038 fixes starting in version 5.6, released March 2020, because 32-bit systems store Unix time as a signed integer that tops out at 2,147,483,647 — January 19, 2038 at 03:14:07 UTC. One second later the counter wraps negative and reads as December 1901. Modern 64-bit systems handle this fine, but the embedded devices running ATMs, medical equipment, and industrial controllers — millions of them still on 32-bit time — will not get kernel updates. The devices shipping right now with 32-bit epoch counters will still be running in 2038.
Python time.time() returns seconds as a float. JavaScript Date.now() returns milliseconds.
Go time.Now().Unix() gives seconds. Java has both: Instant.now().getEpochSecond() for seconds and System.currentTimeMillis() for ms.
Ruby Time.now.to_i — seconds. PHP time() — seconds, microtime(true) — seconds with microsecond float.
The pattern: backend defaults to seconds, browser defaults to milliseconds.
0 — Jan 1, 1970 UTC. The epoch itself. Default when a timestamp field is unset.
946684800 — Jan 1, 2000. The Y2K boundary.
1000000000 — Sep 9, 2001. The "billennium" when epoch hit 10 digits.
2147483647 — Jan 19, 2038. 32-bit overflow.
-1 — Dec 31, 1969 23:59:59 UTC. Catches bugs in systems that reject negative timestamps.
PostgreSQL stores timestamps internally as microseconds since 2000, not 1970 — that is why EXTRACT(EPOCH FROM ts) exists.
MySQL UNIX_TIMESTAMP() returns seconds since 1970. SQLite has no timestamp type — you pick INTEGER or TEXT.
MongoDB BSON Date uses milliseconds. Redis TTL uses seconds. The inconsistency across databases is the reason developers convert epochs constantly.
We hit a JWT debugging issue that turned out to be embarrassingly simple — the exp claim was set with Date.now() (milliseconds) instead of dividing by 1000, so the token expired in the year 56000 instead of in one hour. RFC 7519 defines iat, exp, and nbf as NumericDate values — always seconds, never milliseconds. When an auth flow breaks, paste the exp value here and compare it to the live clock above to see if the token is already expired.
Timestamps from production incident logs and JWT tokens from user sessions contain operational context you probably do not want leaving your network. This tool runs entirely in your browser — no server calls, no data stored. Open DevTools Network tab to verify.
Auto-converts as you type — no submit button needed. Press Ctrl+Enter to toggle between Epoch → Date and Date → Epoch mode. Press Ctrl+Shift+C to copy the primary result to your clipboard.
It is just the number of seconds since January 1, 1970 midnight UTC — the universal reference point that every programming language and database agreed on decades ago. Right now the counter is ticking past 1.7 billion and climbing.
Paste the number here and it converts instantly — no button click needed. The tool figures out whether you gave it seconds or milliseconds and shows local time, UTC, ISO 8601, and how long ago that was.
Ten digits is seconds — what PostgreSQL, Python, and most backends use. Thirteen digits is milliseconds — what JavaScript Date.now() and Java return. Mixing them up is one of the most common timestamp bugs in cross-platform code.
The 32-bit signed integer that stores Unix time tops out at 2,147,483,647 — January 19, 2038. The Linux kernel started merging fixes in version 5.6 (March 2020), but millions of embedded devices running ATMs and IoT sensors will not get those updates.
Everything runs in your browser. No server calls, no data leaves your machine. Open DevTools Network tab to verify.
Most common formats work: 2026-03-28 14:30:00, Mar 28 2026, March 28 2026 3:30 PM, ISO 8601 strings. If JavaScript Date can parse it, this tool handles it.
January 1, 1970 00:00:00 UTC — the start of Unix time. Negative epochs go before 1970. The value -86400 is December 31, 1969.
The live clock at the top ticks in real time. Click it to paste the current value into the input field.
Ctrl+Enter toggles between Epoch → Date and Date → Epoch. Ctrl+Shift+C copies the result.
Developer Toolkit by Git AutoReview
Free tools for developers. AI code review for teams.