Unix Timestamp Converter
Convert Unix timestamps to human-readable dates instantly. Supports 10-digit seconds, 13-digit milliseconds, and ISO 8601 strings. Includes a live clock and date-to-timestamp converter. Free, browser-only.
Current Unix Timestamp
LivePaste a Unix timestamp or ISO date string above to see the full conversion breakdown.
Supports 10-digit Unix seconds, 13-digit Unix milliseconds, and ISO 8601 strings.
What is a Unix timestamp?
A Unix timestamp is a single integer representing the number of seconds elapsed since January 1, 1970 at 00:00:00 UTC -- the Unix epoch. Because it is just a number, it has no timezone and means the same thing on every server in every country. A timestamp of 1700000000 means exactly one thing: 1.7 billion seconds after the epoch, which is November 14, 2023 at 22:13:20 UTC everywhere in the world.
This is why Unix timestamps are used almost universally in computing for storing, transmitting, and comparing times. Integers are efficient to store, trivial to sort and compare, and require no timezone parsing. Converting to a human-readable date is a display concern -- it only happens when showing the time to a person, not when storing or computing it. Use our Unix timestamp guide for a deeper explanation of how timestamps work in practice.
Unix timestamp vs epoch time: is there a difference?
Unix timestamp and epoch time refer to the same thing. Epoch time is the number of seconds since the epoch (January 1, 1970 UTC). Unix timestamp is the term used in POSIX and most programming documentation. You will also see it called Unix time, POSIX time, or simply epoch. All four terms mean the same integer count of seconds from the same starting point.
Some platforms distinguish between the epoch (the starting point) and the timestamp (the count from it). The converter above handles both -- paste a timestamp value of 0 to see the epoch itself (January 1, 1970 00:00:00 UTC), or use the Quick Examples buttons to load common reference timestamps.
Unix timestamp seconds vs milliseconds: how to tell them apart
The most common source of timestamp bugs is confusing seconds and milliseconds. Unix timestamps in seconds are 10 digits (around 1,700,000,000 currently). JavaScript's Date.now() returns milliseconds and produces 13-digit values (1,700,000,000,000). The difference is exactly 1000x. Passing milliseconds where seconds are expected makes dates appear thousands of years in the future. Passing seconds where milliseconds are expected displays everything as January 1, 1970 near midnight.
The converter above auto-detects which format you have pasted based on digit count and labels it clearly before converting. If you are unsure, check the digit count: 10 digits is seconds, 13 digits is milliseconds. To convert between them in JavaScript: divide by 1000 (ms to seconds) or multiply by 1000 (seconds to ms). If you are working with JWT tokens and their exp, iat, or nbf claims, use our JWT Decoder to inspect them.
Common use cases for Unix timestamp conversion
The most frequent uses: reading a JWT token's exp claim to verify it has not expired, checking an API response timestamp to confirm event ordering, verifying a database timestamp before a production deployment, debugging a date that appears wrong in the UI, confirming a cron job ran at the right UTC time, and calculating how long ago an event occurred.
Any time you see a large integer in an API response, a database column, or a log file, there is a good chance it is a Unix timestamp. Paste it into the converter to read it immediately. Use the Date to Timestamp tab when you need to compute the Unix value for a specific date -- for example, to set an expiry 30 days from now for an API token, or to filter database records created before a specific date. For scheduling use cases, the Cron Job Builder also works with UTC times.
Frequently asked questions about Unix timestamps
What is a Unix timestamp?
A Unix timestamp is an integer representing the number of seconds elapsed since January 1, 1970 at 00:00:00 UTC -- the Unix epoch. It is timezone-independent and universally supported across all programming languages, databases, and operating systems. The current timestamp is a 10-digit number that increases by 1 every second.
How do I convert a Unix timestamp to a human-readable date?
Paste your Unix timestamp into the converter above and the tool instantly shows the UTC date, local date, ISO 8601 string, day of week, and relative time. In JavaScript: new Date(timestamp * 1000).toISOString(). In Python: datetime.fromtimestamp(timestamp, tz=timezone.utc). In a Unix terminal: date -d @timestamp (Linux) or date -r timestamp (macOS).
How do I tell if my timestamp is in seconds or milliseconds?
Count the digits. A 10-digit timestamp is Unix seconds (e.g. 1700000000). A 13-digit timestamp is Unix milliseconds (e.g. 1700000000000). Milliseconds are 1000 times larger than seconds. The converter above auto-detects the format and labels it when you paste a value. JavaScript's Date.now() returns milliseconds; most Unix system calls and APIs return seconds.
What is the Unix epoch?
The Unix epoch is the starting reference point for Unix timestamps: January 1, 1970 at exactly 00:00:00 Coordinated Universal Time (UTC). Every Unix timestamp represents the number of seconds before or after this moment. The date was chosen by Unix developers at Bell Labs as a practical starting point close to when the system was being developed.
Why is my date wrong by a few hours?
An error of a specific number of hours (5, 8, 11, etc.) is almost always a timezone problem. The timestamp itself is correct -- it represents a UTC moment. The conversion to local time is applying the wrong timezone. Check whether you are displaying in UTC or in local time. The converter above shows both UTC and local time side by side so you can compare.
How do I convert a date to a Unix timestamp?
Use the Date to Timestamp tab above. Enter a date and time, choose UTC or local timezone, and the tool outputs Unix seconds and milliseconds. In JavaScript: Math.floor(new Date('2023-11-14T22:13:20Z').getTime() / 1000). In Python: int(datetime(2023, 11, 14, 22, 13, 20, tzinfo=timezone.utc).timestamp()). Always specify UTC explicitly to avoid timezone-dependent results.
What is the current Unix timestamp?
The live clock at the top of this page shows the current Unix timestamp in both seconds and milliseconds, updating every second. You can also get it in code: Math.floor(Date.now() / 1000) in JavaScript, int(time.time()) in Python, date +%s in a Unix terminal, or time() in PHP.
What is an ISO 8601 date string?
ISO 8601 is a human-readable international date format: 2023-11-14T22:13:20Z. The T separates the date from the time. The Z at the end indicates UTC. You can also include a timezone offset: 2023-11-14T17:13:20-05:00 for EST. ISO 8601 strings can be pasted directly into the converter above to see the equivalent Unix timestamp.
Can Unix timestamps represent dates before 1970?
Yes, as negative integers. January 1, 1969 is approximately -31536000. Most modern programming languages and systems support negative Unix timestamps for historical dates. Paste a negative timestamp into the converter above to verify. Some older systems and libraries only support non-negative values.
What is the Year 2038 problem?
The Year 2038 problem affects systems storing Unix timestamps as 32-bit signed integers. The maximum value (2,147,483,647) corresponds to January 19, 2038 at 03:14:07 UTC. After that moment, a 32-bit counter overflows to a large negative number. Modern systems using 64-bit integers are not affected -- 64-bit timestamps can represent dates billions of years into the future.
Related guide
Deep-dive guide covering what Unix timestamps are, seconds vs milliseconds, UTC vs local time, JWT exp fields, database best practices, and how to debug common timestamp bugs.