TimestampUnix

timestamp → date

Unix Timestamp to Date Converter

Enter a Unix timestamp in seconds, milliseconds, microseconds or nanoseconds. The unit is detected automatically — override it any time — and the instant is rendered in UTC, your local timezone, any IANA timezone, and every standard date format, with copy buttons on each result.

Interpret input as

Accepts Unix timestamps (s / ms / µs / ns), ISO 8601, RFC 2822 and common date strings.

How timestamp-to-date conversion works

A Unix timestamp counts seconds from 1970-01-01 00:00:00 UTC, so converting it to a date is pure arithmetic: divide by 86,400 to find the day number since the epoch, map that to a calendar date, and use the remainder for the time of day. Timezone and daylight-saving rules then shift the display — never the instant itself.

// JavaScript — seconds to Date
new Date(1758000000 * 1000).toISOString();
// "2025-09-16T05:20:00.000Z"

// Python
from datetime import datetime, timezone
datetime.fromtimestamp(1758000000, timezone.utc)
# datetime(2025, 9, 16, 5, 20, tzinfo=timezone.utc)

// PHP
gmdate('Y-m-d H:i:s', 1758000000);
// "2025-09-16 05:20:00"

Which unit is my timestamp?

Count the digits. For dates in the current era:

The auto-detection above uses these magnitude ranges rather than a blind digit count, and negative timestamps are supported for pre-1970 dates.

Timestamp to date examples

TimestampUTC
11970-01-01 00:00:01
10000000002001-09-09 01:46:40
17000000002023-11-14 22:13:20
17580000002025-09-16 05:20:00
21474836472038-01-19 03:14:07
-11969-12-31 23:59:59

Frequently asked questions

How do I convert a Unix timestamp to a readable date?
Paste the timestamp into the field above — the unit is detected automatically from its length, and you can override it. The result shows UTC, your local time, the timezone you select, and standard text formats. In JavaScript: new Date(1758000000 * 1000).toISOString().
Why does my timestamp show a date in 1970?
You almost certainly passed seconds to an API that expects milliseconds. JavaScript's new Date() takes milliseconds, so new Date(1758000000) is January 21, 1970. Multiply by 1,000: new Date(1758000000000).
Why does my timestamp show a date thousands of years in the future?
The reverse mistake: you passed milliseconds where seconds were expected — for example date("Y", 1758000000000) in PHP. Divide by 1,000 first.
Can I convert negative timestamps?
Yes. Negative values are instants before the epoch: -1 is 1969-12-31 23:59:59 UTC and -86400 is 1969-12-31 00:00:00 UTC. The converter handles them like any other value.
How precise is the conversion?
Textual date formats above are exact to the second. For sub-second precision this tool uses BigInt arithmetic, so microsecond and nanosecond timestamps are converted without the rounding errors JavaScript Number would introduce beyond 253.

Related tools