Skip to main content

Unix Timestamp Converter

Convert a Unix timestamp to a date in any time zone, or turn a date into a timestamp, with the unit detected automatically.

Runs 100% in your browser

Shortcuts
Copy the output
Alt + Shift + C

Your input is saved in this browser only. Reset clears it.

Current Unix time (seconds)

Milliseconds

Timestamp to date

Date to timestamp

Daylight saving time is taken from the selected zone, so a wall-clock time near a change lands on the right instant.

How to use the Unix Timestamp Converter

  1. Paste a Unix timestamp. Seconds, milliseconds, microseconds, and nanoseconds are detected automatically.

  2. Pick a time zone to see that local date and time next to UTC and a relative description.

  3. Or enter a date and time to get the timestamp back, then copy the value you need.

Example: One timestamp in several time zones

Unix timestamp (seconds)
1757894400
Output
ISO 8601 (UTC):   2025-09-15T00:00:00.000Z
UTC (RFC 7231):   Mon, 15 Sep 2025 00:00:00 GMT
America/New_York: Sunday, September 14, 2025 at 20:00:00 (UTC−04:00)
Europe/Belgrade:  Monday, September 15, 2025 at 02:00:00 (UTC+02:00)
Asia/Tokyo:       Monday, September 15, 2025 at 09:00:00 (UTC+09:00)

The same instant, shown three different calendar days apart. Note New York is on daylight saving time here, so its offset is −04:00 rather than −05:00.

Frequently Asked Questions

What is a Unix timestamp?

A Unix timestamp is the number of seconds since 1 January 1970 00:00:00 UTC, known as the Unix epoch. It is a single number with no time zone, which makes it convenient for storing and comparing instants in APIs, logs, and databases.

Is my timestamp in seconds or milliseconds?

Count the digits. Timestamps for dates around now have 10 digits in seconds, 13 in milliseconds, 16 in microseconds, and 19 in nanoseconds. This converter detects the unit automatically and shows which one it used, and you can override it if the value is unusual.

How do I convert a Unix timestamp to a date?

Multiply seconds by 1000 and pass the result to a date type, for example new Date(1757894400 * 1000) in JavaScript. Paste the timestamp here to see the UTC time, the time in any zone you pick, and a relative description such as "3 hours ago".

How are time zones and daylight saving time handled?

Conversions use the browser's IANA time zone database, so each zone's offset and daylight saving rules are applied for that specific date. Entering a wall-clock time near a daylight saving change converts to the correct instant rather than being off by an hour.

About Unix timestamps

A Unix timestamp counts the seconds since 1 January 1970 00:00:00 UTC. It's a single number with no time zone and no formatting, which is exactly why APIs, log files, JWTs, and databases use it: two timestamps can be compared or subtracted without parsing anything.

Seconds, milliseconds, and beyond

The unit is the usual source of confusion, because the number alone doesn't say which it is. For dates around today, the digit count gives it away: 10 digits is seconds, 13 is milliseconds, 16 is microseconds, and 19 is nanoseconds. JavaScript's Date.now() returns milliseconds while most APIs and Unix tools use seconds, so a value that's off by a factor of 1000 usually means the wrong unit rather than a bug in your code.

Converting in code

new Date(1757894400 * 1000)  // JavaScript: seconds → Date

Math.floor(Date.now() / 1000)  // JavaScript: now, in seconds

datetime.fromtimestamp(ts, timezone.utc)  // Python

to_timestamp(1757894400)  // PostgreSQL

date -r 1757894400  // macOS shell (GNU: date -d @1757894400)

Time zones and daylight saving

A timestamp is an instant; a time zone is how that instant is displayed. Converting in the other direction is where bugs appear, because a wall-clock time like "2 March, 02:30" may not exist, or may exist twice, on a daylight saving change day. This converter resolves the zone offset for the specific date you enter, so those cases land on the right instant.

The practical rule: store instants in UTC (as a timestamp or an ISO 8601 string ending in Z), convert to a local zone only when showing them to a person, and keep the user's IANA zone name (Europe/Belgrade) rather than a fixed offset, since offsets change with daylight saving and legislation.

The year 2038 problem

Systems that store a timestamp in a signed 32-bit integer run out of room on 19 January 2038, when the count exceeds 2,147,483,647 and wraps to a negative number. Modern languages and databases use 64-bit values, but the limit still shows up in old C code, embedded devices, and columns typed as a 32-bit integer. Anything computing far-future dates, such as long-lived expiry times, is worth checking.

Where you'll meet timestamps

JWT exp and iat claims, webhook signature headers, rate-limit reset headers such as x-ratelimit-reset, cache metadata, log lines, and the created_at column of nearly every database.