JSON Formatter & Validator
Format, validate, and beautify JSON instantly. Pretty-print or minify. Error messages show line and column. Free, runs in your browser.
Open toolHome › Tools › Developer Tools › Unix Timestamp Converter
Convert Unix epoch timestamps to human-readable dates, or any date to a Unix timestamp. Auto-detects seconds vs milliseconds. Live epoch counter updates every second.
A Unix timestamp (also called epoch time or POSIX time) is the number of seconds that have elapsed since January 1, 1970 at 00:00:00 UTC. It is timezone-independent: 1718445600 means the same moment everywhere on Earth. That property is why backend systems, APIs, and databases store timestamps as Unix integers rather than formatted date strings — there is no ambiguity about DST offsets, locale conventions, or timezone names.
This converter handles both directions. Epoch to date: paste a Unix timestamp and get the UTC date, your local date and time, the ISO 8601 representation, and the relative age ("3 days ago"). Date to epoch: pick a date, time, and timezone using the date picker and get the corresponding Unix timestamp to copy into code, a configuration file, or an API call. Everything runs in the browser.
The number of digits is the signal. For dates in the 2020s:
1718445600). Standard for Unix time; used by POSIX APIs, most Linux tools, JWT exp/iat claims, HTTP headers like Retry-After.1718445600000). JavaScript's Date.now(), Java's System.currentTimeMillis(), most browser APIs.EXTRACT(EPOCH FROM now()) * 1000000, Python's time.time_ns() // 1000.This tool auto-detects the unit from the digit count and labels which it's treating the input as. If your 13-digit timestamp produces a date in 2025, it's in milliseconds and being correctly detected.
Setting a JWT exp claim, writing a cache expiry, scheduling a cron job, or constructing an API request that accepts a Unix timestamp in the body: these all require converting a target date into epoch format. Select the date and time using the picker, choose the timezone (or leave as UTC to get the timezone-independent value), and copy the resulting epoch integer. For JWT expiry: take the current epoch plus the number of seconds in your intended validity period (86400 for 24 hours, 604800 for 7 days).
32-bit signed integers max out at 2147483647, which is January 19, 2038 at 03:14:07 UTC. Systems that store Unix timestamps in a 32-bit int field will overflow on that date — either wrapping to a large negative number (representing a 1901 date) or throwing an overflow error depending on the language and runtime. Modern systems use 64-bit integers, which won't overflow until the year 292,277,026,596. If your system stores epoch values in a legacy 32-bit field and serves anything scheduled past 2038, that's a live bug.
The epoch-to-date direction outputs three time representations: UTC (2024-06-15 12:00:00 UTC), your browser's local time with the detected timezone offset, and ISO 8601 format (2024-06-15T12:00:00Z). ISO 8601 with the trailing Z is the standard for API interchange — it's unambiguous and parseable by all date libraries in all languages. The local time output is for human reading; use ISO 8601 or raw epoch for machine consumption.
A Unix timestamp (also called epoch time or POSIX time) is the number of seconds elapsed since January 1, 1970 at 00:00:00 UTC. It is timezone-independent — the same integer means the same moment everywhere on Earth, which is why APIs and databases prefer it over formatted date strings. The current Unix timestamp is always a 10-digit number (for dates between 2001 and 2286).
Count the digits. A seconds-based timestamp for 2024 is 10 digits (1718445600). A milliseconds-based timestamp is 13 digits (1718445600000). JavaScript's Date.now() and Java's System.currentTimeMillis() return milliseconds; most POSIX system calls and JWT libraries use seconds. This tool auto-detects and labels the detected unit next to the input.
32-bit signed integers can represent Unix timestamps only up to 2,147,483,647, which corresponds to January 19, 2038 at 03:14:07 UTC. Systems storing epoch values in a 32-bit int field will overflow or error on that date. Modern systems use 64-bit integers, which extend the safe range to the year 292 billion. If you maintain legacy code with int32 timestamp fields that need to handle dates after 2038, migration to int64 is the fix.
Unix timestamps are always UTC — DST doesn't affect them. When this tool converts an epoch to your local time, it applies your browser's timezone rules for that specific moment in history, including whether DST was in effect at that time. A summer timestamp displays in summer time; a winter timestamp displays in winter time. The UTC output is always DST-independent.
Negative timestamps represent dates before January 1, 1970 at 00:00:00 UTC. -1 is December 31, 1969 at 23:59:59 UTC. -86400 is December 31, 1969 at 00:00:00 UTC. Most systems that use epoch arithmetic for recent events don't encounter negative timestamps, but they're valid and this tool handles them correctly.
ISO 8601 is the international standard for representing dates and times. The format this tool outputs is YYYY-MM-DDTHH:MM:SSZ, where T separates the date from the time and Z means UTC (Zulu time). Most programming languages and APIs parse this format natively. It's the correct format to use in JSON API responses, log entries, and data exports where machine readability matters.
Yes. No account required, no rate limit. The conversion runs entirely in your browser — no data is sent to a server.
For Epoch → Date: paste your Unix timestamp into the Epoch input field. The tool auto-detects seconds (10 digits) vs milliseconds (13 digits). The result shows UTC time, local time, ISO 8601 format, and relative age.
For Date → Epoch: use the date picker to select a date and time. Choose your timezone from the dropdown (default: UTC). The epoch value updates immediately as you change the inputs.
Click the copy icon next to any output value to copy it to your clipboard — epoch integer, UTC string, ISO 8601, or local time.
To check whether a timestamp is in seconds or milliseconds: count the digits. 10 digits = seconds, 13 digits = milliseconds. The detected unit is labeled next to the input field.
To set a future timestamp (e.g., a JWT expiry 30 days from now): use the Date → Epoch direction, pick a date 30 days out, copy the epoch, paste into your JWT payload as the exp claim value.
Keep going
Format, validate, and beautify JSON instantly. Pretty-print or minify. Error messages show line and column. Free, runs in your browser.
Open toolPercent-encode URL components or decode %xx sequences instantly. Supports full URL and component modes. Free, browser-side.
Open toolEncode text, files, or binary data to Base64 and decode Base64 back to text or download as binary. Free, runs in your browser.
Open toolGenerate random, time-based, or sortable UUIDs instantly. UUID v4, v1, v7, and Nil. Quantity up to 100. Cryptographically secure.
Open tool