Paste a Unix timestamp or an ISO date to convert between epoch time and a human date. Units are detected by magnitude: seconds below 10¹², milliseconds below 10¹⁵, microseconds below 10¹⁸, nanoseconds above. Outputs include ISO 8601 UTC, local time and the current Unix time. Negative values (dates before 1970) are supported. Nothing leaves this tab.
Current Unix time (seconds)
Starting clock
Current Unix time (milliseconds)
Starting clock
Unix seconds
Waiting for input
Unix milliseconds
Waiting for input
ISO 8601 (UTC)
Waiting for input
Local time
Waiting for input
Relative to now
Waiting for input
Starting clockConverted on this device, nothing leaves this tab
Unix time, also called epoch time, counts seconds since 1970-01-01T00:00:00Z. JavaScript uses milliseconds, and databases and tracing systems often store microseconds or nanoseconds. This epoch converter reads any of the four, detecting the unit from the size of the number, and shows the same instant as ISO 8601 UTC, local time in your browser's timezone, a relative phrase such as 3 hours ago, and both Unix seconds and milliseconds. It converts the other way too: paste a date and get its epoch value. The block at the top shows the current Unix timestamp, ticking once a second.
How the Unix Timestamp Converter works
Paste a number. Below 10¹² it is read as seconds, below 10¹⁵ as milliseconds, below 10¹⁸ as microseconds, and anything larger as nanoseconds; the footer names the unit it picked, and negative values are dates before 1970. Paste a date instead (ISO 8601, or any form your browser's Date constructor accepts) and the seconds and milliseconds rows become the answer. Every row has a copy button. Use now fills in the current second, Use now (ms) the current millisecond. Everything runs on your browser's Date and Intl APIs; no request is made.
~/faq
Frequently asked questions
What is the difference between Unix time and epoch time?
None, they are two names for the same count. The epoch is the instant 1970-01-01T00:00:00Z, and Unix time (also epoch time or POSIX time) is the number of seconds elapsed since it, ignoring leap seconds. Epoch converter and Unix timestamp converter describe this same tool.
How do I convert epoch to a date?
Paste the epoch value in the input. The ISO 8601 row is the date in UTC; the Local time row is the same instant in your browser's timezone with its UTC offset. In code: new Date(seconds * 1000) in JavaScript, datetime.fromtimestamp(seconds, timezone.utc) in Python, to_timestamp(seconds) in PostgreSQL.
What is the current Unix timestamp?
The block at the top shows it live, in seconds and in milliseconds, read from your device clock with Date.now() once a second, so it is exactly as accurate as your clock. Copy takes the value shown at that moment; Use now moves it into the input.
Seconds, milliseconds, microseconds or nanoseconds?
The tool decides by magnitude: values below 10¹² are seconds, below 10¹⁵ milliseconds, below 10¹⁸ microseconds, and anything larger nanoseconds. For any date between 2001-09-09 and 2286-11-20 that means 10, 13, 16 and 19 digits respectively, and the footer tells you which unit was detected.
Why does my timestamp show the year 56 000?
Something read a milliseconds value as seconds: 1,725,105,600,000 taken as seconds is about 54,666 years after 1970, so the year 56636. The mirror-image bug (seconds read as milliseconds) lands in January 1970. This tool detects the unit from the magnitude and prints both seconds and milliseconds so you can hand the right one onward.
Does the year 2038 problem affect this?
No. The 2038 problem is a signed 32-bit integer overflowing at 2,147,483,647 seconds, which is 2038-01-19T03:14:07Z. JavaScript stores dates as 64-bit doubles with a range of ±8.64 × 10¹⁵ milliseconds, so this tool converts anything from the year −271821 to 275760.
Which timezone is the output in?
The ISO 8601 row is always UTC (the Z suffix), which keeps logs comparable. The Local time row uses the IANA zone your browser reports (Europe/Amsterdam, America/New_York) with the UTC offset in force at that instant, so DST is accounted for. A date you paste without a zone suffix is read in local time; append Z for UTC.
Is anything uploaded?
No. Parsing uses Date and formatting uses Intl, both built into your browser; the live clock reads Date.now(). LocalFirstTools has no endpoint that receives the value you paste.
Related tools
Chosen for the same job, not just the same category.