Unix Timestamp Converter
Convert Unix timestamps to readable dates and back, with auto-detection of seconds vs milliseconds and a live current timestamp.
In your browser—your files never leave your device.
Learn more1779123488About this tool
A Unix timestamp counts seconds since January 1, 1970 UTC — the Unix epoch. Almost every system stores time as an integer offset from that moment, but the unit varies: classic Unix uses seconds (a 10-digit number around 1.7 billion in 2026), JavaScript Date.now() uses milliseconds (13 digits, ~1.7 trillion), some databases use microseconds (16 digits), and others store it as a 64-bit nanosecond count (19 digits). This tool converts in both directions and auto-detects the unit by length — if your input is 13 digits or more it is treated as milliseconds, otherwise seconds. Output includes UTC, your local timezone, ISO 8601 (the format you want in JSON), and a relative description ("3 hours ago"). A live counter at the top shows the current Unix time, refreshed every second.
How to unix timestamp converter
-
Pick a direction
Use the timestamp input to convert epoch to date. Use the date input to convert date to epoch. Both work independently and simultaneously, so you can have both filled with different values to compare.
-
Paste or type
For timestamp input, either 10-digit seconds, 13-digit milliseconds, or any length number — the tool auto-detects which based on the digit count. For date input, use the date/time picker which respects your local timezone.
-
Read all four formats
UTC, local time, ISO 8601, and relative time appear simultaneously. Pick the one your destination expects. ISO 8601 is almost always the right answer for new code; local time is for human display; UTC is for log correlation; relative is for "is this recent?" sanity checks.
-
Copy
Each output has a copy button. One click sends it to your clipboard. The Clipboard API works on all modern browsers including mobile.
Why use this tool
API debugging is the everyday case. A JWT carries exp as a Unix timestamp and I need to know whether it died half an hour ago or expires next week. Stripe webhooks carry created as seconds-since-epoch and I want to know when the event fired in my local timezone. Database rows store updated_at as either a TIMESTAMP or an integer, and the answer to "when did this last change" needs human-readable format. The second case is generating future dates: "I need a timestamp 7 days from now for a token TTL" — typing the date in and copying the seconds out is one click. The third case is the Year 2038 problem — 32-bit signed integers overflow on January 19, 2038, and any legacy system using INT for timestamps will roll over to a negative number and start mis-displaying dates. This tool handles dates well past 2038 because JavaScript uses 64-bit doubles for milliseconds. The fourth case is debugging log timestamps that arrive in different formats from different systems — Postgres might emit ISO 8601 with timezone, Linux syslog gives you epoch seconds with microsecond precision, application logs might write Unix milliseconds. Normalizing in your head is annoying; pasting and reading is fast.
Features
Bidirectional conversion
Paste a timestamp and get a date, or pick a date and get a timestamp. The two input fields are independent so you can convert in both directions in the same session without losing your previous work. The conversion is symmetric — round-tripping a timestamp through to a date and back gives you the same value, modulo any precision loss at the millisecond boundary.
Auto-detect seconds vs milliseconds
A 10-digit input is treated as Unix seconds. A 13-digit input is treated as Unix milliseconds. This is the unit convention almost everyone uses — current Unix seconds is around 1.75 billion (10 digits, will be until November 2286), current Unix milliseconds is around 1.75 trillion (13 digits, will be until October 4660 AD). The auto-detection is by length, not by value, so a 1-second-since-epoch input (8 digits, year 1970) gets interpreted correctly as seconds, not as 1 millisecond.
Multiple output formats
For a given timestamp you see UTC (the canonical reference), your local timezone (what your users see), ISO 8601 (what your JSON should use), and a relative description ("3 hours ago", "in 5 days"). Each has its own copy button. The variety means whichever format your downstream consumer wants, you can grab it without doing a format conversion separately.
Live current timestamp
A counter at the top shows the current Unix time in seconds, updating every second. Click to copy. Useful when you need "right now" as a timestamp for a token, a log entry, a test fixture, or a database INSERT. The live update means you do not paste a stale value from earlier in your session.
Anchored to a known epoch
Every conversion this tool does is anchored to the Unix epoch: January 1, 1970, 00:00:00 UTC. That moment is timestamp zero. Negative numbers represent times before the epoch (yes, you can paste -86400 and get December 31, 1969). The Unix epoch is the most widely used time origin in computing, but not the only one — Windows FILETIME counts 100-nanosecond intervals since January 1, 1601; NTP counts seconds since January 1, 1900; Apple Cocoa uses January 1, 2001. If a timestamp from another system seems to be off by decades, check whether it is using a different epoch and apply the offset. The tool only handles Unix epoch directly; for other epochs, do the math in your head or your editor.
Privacy & security
All conversions are arithmetic on numbers and string formatting on the results — JavaScript's Date object handles it in your browser. The current timestamp ticker reads Date.now() once a second; your local timezone comes from Intl.DateTimeFormat which inherits from your OS. Nothing leaves the page. Useful for debugging timestamps that ride alongside identifying information (user IDs in log entries, session times in audit trails) since the surrounding context stays in your tab.