The Unix Timestamp Converter Guide: Epoch to Date and Back, in Any Unit and the Right Time Zone
A log line says 1758600000. An API returns 1758600000123. A database column holds a number with nineteen digits. All three count time since 1970, and all three are useless once you misread the unit. This guide explains what Unix time is, how to use a unix timestamp converter to turn a timestamp to date and a date back into a timestamp, how to tell seconds from milliseconds at a glance, and why a converted time sometimes lands in 1970, in the year 57,000, or a few hours off. The epoch converter above does both directions and names the unit it detected.

1. What Unix Time Is, and the Current Unix Timestamp
Unix time is the number of seconds that have passed since 00:00:00 UTC on 1 January 1970, a moment known as the Unix epoch. The definition comes from the POSIX standard, and the Open Group’s POSIX base definitions spell out exactly how “seconds since the epoch” is counted. Being one plain integer, the same everywhere, it is how databases, logs, tokens and APIs record when something happened.
The first card on the tool shows the current unix timestamp in seconds, ticking every second. That answers the most common version of how to get current epoch time: press Copy for a test, config file or API call, or Use now to load it into the converter below as a date.
2. How to Convert a Unix Timestamp to Date
Here is how to convert unix timestamp to date with this epoch to date converter online free of accounts and limits.
- Paste the number into the Timestamp → Date field. Commas, underscores and spaces are ignored, so
1,758,600,000and1_758_600_000both work, and so do negative values for dates before 1970. - Check the detected unit. The first result row says whether the value was read as seconds, milliseconds, microseconds or nanoseconds.
- Pick a display timezone. It starts on your own zone; switch to UTC or another zone and the date re-renders.
- Read the result: your chosen zone, UTC, ISO 8601, relative time such as “3 hours ago”, day of year (UTC), and the value in seconds and milliseconds.
Anything that is not a number shows a clear “Not a number” error rather than a silent wrong date.
Two readings deserve a note. The Relative row rounds to the nearest sensible unit and treats a month as 30 days and a year as 365, so treat “4 months ago” as a quick sense check, not an exact count; the UTC and ISO 8601 rows are the precise values. And a number so large or so negative that it falls outside the supported calendar range, hundreds of thousands of years away, does not produce a new date, so if the result does not change after you paste, check for a stray extra digit or two.
One value at a time. There is no batch mode for a column pasted from a log or CSV, no custom output patterns such as YYYY-MM-DD HH:mm, and no ready-made code snippets. To tidy a pasted list before converting values one by one, the line tools can dedupe, sort and trim it first.
3. Date to Unix Timestamp: ISO 8601, RFC 2822 and the Picker
The Date → Timestamp card is the date to unix timestamp converter, and it covers how to convert date to epoch two ways.
- The date and time picker accepts a calendar date and a time down to the second. It reads what you pick in your own time zone, the one your system clock is set to.
- The text field takes a date string. Paste an ISO 8601 value from an API, such as
2025-09-23T04:00:00Z, for iso 8601 to unix timestamp, or an email or HTTP header style date such asTue, 23 Sep 2025 04:00:00 +0000for rfc 2822 date to timestamp.
Either way you get Unix seconds, Unix milliseconds, ISO 8601 in UTC, the date in your display zone and a relative reading; an unreadable string shows “Unrecognised date”. Building a discord timestamp unix time tag like <t:1758600000:F>? Copy the seconds row and drop it between the colons.
4. Seconds or Milliseconds? The Digit-Count Rule
Different systems count the same moment in different units, which is the whole answer to why is epoch time 10 digits vs 13 digits. For any date in the present era, the length gives it away:
10 digits: seconds
Classic Unix time. Shell date +%s, Python int(time.time()), PHP time(), most SQL epoch functions and JWT claims.
13 digits: milliseconds
Date.now() in web code, Java System.currentTimeMillis() and many web APIs. This is what a milliseconds to date converter is for.
16 digits: microseconds
Common in database internals, tracing and analytics exports. A microsecond timestamp converter just divides by a million first.
19 digits: nanoseconds
Go UnixNano(), Python time.time_ns() and many observability tools. A nanosecond timestamp to date is the same moment with nine extra digits.
That is how to tell if timestamp is seconds or milliseconds by eye, and it is exactly what the converter does for you, so a Date.now() to date lookup is just a paste. Two honest caveats. Precision finer than one millisecond is dropped when microseconds or nanoseconds are shown as a date. And a seconds value of 1011 or more, which would be a date beyond the year 5138, is read as milliseconds; there is no switch to force a different unit.
5. Timestamp Shows 1970 or the Wrong Year
When a timestamp shows 1970, the cause is almost always a seconds value being treated as milliseconds. Take 1758600000, which is 23 September 2025 at 04:00 UTC. Hand it to code that expects milliseconds and it becomes about 1.76 million seconds after the epoch: 21 January 1970. Exactly 1 January 1970 usually means a zero or empty value slipped through.
The mirror image is a timestamp converts to wrong year, far in the future. Treat the millisecond value 1758600000123 as seconds and you land in the year 57,697.
The fix is to paste the raw number here and read the Detected unit row. If it says milliseconds and your code skips a division by 1,000, or says seconds and your code passes it to a milliseconds function, you have found the line to change.
6. Epoch Time Converter With Timezone: Why Hours Go Missing
An epoch value has no time zone. 1758600000 is one instant everywhere; only the way it is written changes. That is the key to a unix timestamp wrong timezone complaint: the number is right, and the reading was done in a zone you did not expect. For comparing server logs, read the unix timestamp to UTC row, which never changes.
As an epoch time converter with timezone, the tool lets you choose UTC, your own zone, Asia/Karachi, Asia/Riyadh, Asia/Dubai, Europe/London, Europe/Berlin, America/New_York, America/Los_Angeles, Asia/Kolkata, Asia/Tokyo or Australia/Sydney. For unix timestamp to Pakistan time, choose Asia/Karachi: 1758600000 reads as Tuesday, 23 September 2025 at 09:00:00 GMT+5. For an epoch to IST converter, choose Asia/Kolkata: 09:30:00 GMT+5:30.
Going the other way needs one extra step. The picker and any typed string without an offset are read in your own zone, not the display zone, and a date-only string such as 2025-09-23 is read as midnight UTC. To find the epoch value for 9am in New York while sitting in Karachi, type the offset yourself: 2025-09-23T09:00:00-04:00. The zone list is fixed; other zones and manual display offsets are not available.
7. Why Use the Cortexis Epoch Converter
The hard part of reading a timestamp is rarely the arithmetic; it is knowing which unit and which zone you are looking at. This converter is built around answering both.
Unit shown, not assumed
Seconds, milliseconds, microseconds and nanoseconds are detected by size, and the result says which one was used, so a 1970 or far-future date never goes unexplained.
Both directions, one screen
Timestamp to date and date to timestamp sit side by side, with a live current Unix time counter, Copy and Use now above them.
More than one reading
Your chosen zone, UTC, ISO 8601, relative time, day of year, and the value in both seconds and milliseconds, all at once.
Accepts messy input
Thousands separators, underscores, spaces and negative pre-1970 values are fine. ISO 8601 and RFC 2822 strings convert too.
Your data stays private
Nothing you enter is ever stored on our servers or retained, and it is never used for training.
Genuinely free
No sign-up, no email, no daily counter and no paywall. The tool on this page is the whole product.
What it does not do is worth saying as plainly. It does not calculate the difference between two timestamps or add days to a date, and it reads only the Unix epoch, not spreadsheet serial dates or Windows FILETIME. For a token, the JWT decoder reads the whole thing, and for IDs that embed a time, the UUID generator is the right tool. It is one of a wider set of free developer tools built on the same terms.
8. Frequently Asked Questions (FAQ)
How do I convert a Unix timestamp to a date for free?
Paste the number into the Timestamp to Date field at the top of this page. The unit is detected automatically and the date appears in UTC, ISO 8601 and your chosen display timezone, with no account or limit.
How can I tell if a timestamp is in seconds or milliseconds?
Count the digits: 10 for seconds, 13 for milliseconds, 16 for microseconds and 19 for nanoseconds, for any date in the present era. The converter applies the same rule and shows the unit it used in the Detected unit row.
Why does my timestamp convert to January 1970?
A seconds value was almost certainly treated as milliseconds, which lands it a few weeks after the epoch. An exact 1 January 1970 usually means the value was zero or empty. Paste the raw number here to see its real unit and date.
Why is my converted time a few hours off?
The timestamp itself has no time zone, so the number is fine and the reading was done in a different zone than you expected. Compare the UTC row with the zone row, and when converting a typed date, add an offset such as +05:00 if you mean a zone other than your own.
How do I convert Date.now() to a date?
Date.now() returns milliseconds since 1970, a 13-digit number such as 1758600000123. Paste it into the Timestamp to Date field and the Detected unit row reads milliseconds, with the date shown in UTC, ISO 8601 and your display zone. In your own code, pass the value straight to new Date(value); if it was divided by 1,000 to get seconds, multiply it back first or the date lands in January 1970.
How do I read the exp claim of a JWT as a date?
The exp, iat and nbf claims are Unix timestamps in seconds, so a jwt exp timestamp to date lookup is a simple paste here. To read the whole token, use the JWT decoder.
What is the Year 2038 problem?
Systems that store Unix time as a signed 32-bit integer can only count up to 2,147,483,647 seconds, which is 19 January 2038 at 03:14:07 UTC. One second later the value overflows and can wrap to 1901. Paste 2147483647 here to see the boundary; the fix belongs in the software that stores the value.
Can I convert a negative Unix timestamp?
Yes. A negative unix timestamp counts backwards from 1970, so -31536000 is 1 January 1969 at midnight UTC. Paste it with the minus sign and it converts like any other value.
Does Unix time include leap seconds?
No. Unix time treats every day as exactly 86,400 seconds and ignores leap seconds, which is why it maps cleanly onto calendar dates. For everyday conversions this makes no visible difference.
Working through an API response? Tidy it with the JSON formatter, reshape an export with the CSV to JSON converter, match timestamps in log lines with the regex tester, or tidy a query on an epoch column with the SQL formatter. And if you would rather write this kind of date handling yourself, our free full-stack web development course and Python development course cover the date and time handling behind tools like this one.

