Unix Timestamp Converter

Convert Unix timestamps online. Turn epoch time into a readable date, or a date into a Unix timestamp, in seconds or milliseconds, local time or UTC.

Current Unix time (seconds)—
Current time (ISO 8601, UTC)—
Timestamp → Date
Date → Timestamp

What is a Unix timestamp?

A Unix timestamp (epoch time, POSIX time) is the number of seconds since 1970-01-01T00:00:00Z, the Unix epoch. POSIX defines it in “Seconds Since the Epoch” with a fixed formula in which every day has exactly 86,400 seconds, so leap seconds are not counted. The same instant has the same timestamp everywhere in the world; time zones only matter when you turn the number into a calendar date.

For a human-readable form, most APIs use RFC 3339, a profile of ISO 8601, such as 2023-11-14T22:13:20Z. This converter goes both ways: from a number to dates, and from a date and time to a number.

How to use the converter

Timestamp → Date

  1. Type or paste a number into Timestamp. The field is filled with the current time when the page loads.
  2. Pick Seconds or Milliseconds. The tool does not guess the unit from the number of digits.
  3. Read the four results, which update as you type. Use current time fills in the current time in the selected unit.

Date → Timestamp

  1. Choose a date and time, to the second, in Date/time.
  2. Set Interpret as to Local time (your browser’s time zone) or UTC.
  3. Read Seconds and Milliseconds. Use current time enters the current local time and switches back to Local time.

The panel at the top shows the current Unix time in seconds and the current UTC time in ISO 8601, refreshed every second.

What each result means

The input accepts anything JavaScript reads as a finite number: negatives for dates before 1970, decimals for fractional seconds (1700000000.5 gives .500Z) and exponent notation such as 1e9. Spaces and commas inside the number are rejected. JavaScript dates reach 8,640,000,000,000 seconds either side of the epoch (the year 275760); beyond that you see “Timestamp is out of range.”

Common problems and fixes

SymptomCauseFix
The date is in the year 55840A 13-digit millisecond value was read as seconds.Select Milliseconds. JavaScript’s Date.now() and Java’s System.currentTimeMillis() return milliseconds.
The date is in January 1970A 10-digit seconds value was read as milliseconds.Select Seconds. Unix date +%s and most databases use seconds.
Local time is an hour or more away from what you expectedThe Local row uses this browser’s time zone, not the server’s or the user’s.Compare against the UTC or ISO 8601 row, which do not depend on your settings.
The timestamp is off by your UTC offsetThe date was typed as UTC but Interpret as was left on Local time, or the other way round.Set Interpret as to match where the date came from.
“Enter a valid numeric timestamp.”The value contains separators, units or quotes, such as 1,700,000,000 or "1700000000".Paste the digits only.
A local time around a clock change gives an unexpected valueThat local time was skipped or happened twice (see below).Use UTC for anything stored or scheduled.

Daylight saving gaps and overlaps

When clocks go forward, some local times never exist; when they go back, some occur twice. Browsers resolve this the same way: a missing time is moved forward by the length of the gap, and a repeated time takes the earlier of its two instants. With the browser set to London, 2026-03-29 01:30 local gives 1774747800, which is 02:30 BST, and 2026-10-25 01:30 local gives 1792888200, the first 01:30 (BST, UTC+1).

Example timestamps

Each value below was checked in this converter.

Timestamp (s)ISO 8601 (UTC)Note
01970-01-01T00:00:00.000ZThe Unix epoch
-864001969-12-31T00:00:00.000ZOne day before the epoch
10000000002001-09-09T01:46:40.000ZThe first ten-digit timestamp
17000000002023-11-14T22:13:20.000ZThe same instant is 1700000000000 in milliseconds
21474836472038-01-19T03:14:07.000ZLargest signed 32-bit value
42949672952106-02-07T06:28:15.000ZLargest unsigned 32-bit value

The year 2038 problem

Software that stores Unix time in a signed 32-bit integer can count only to 2,147,483,647, which is 03:14:07 UTC on 19 January 2038. One second later the value wraps to −2,147,483,648, which such software reads as a date in December 1901. Modern operating systems and languages use 64-bit time, but old file formats, embedded devices and database columns declared as 32-bit integers can still be affected. If you store timestamps yourself, use a 64-bit column.

Frequently asked questions

How can I tell whether a timestamp is in seconds or milliseconds?

For present-day dates, seconds have 10 digits and milliseconds have 13. Ten-digit seconds cover September 2001 to November 2286, so the rule holds for any current date. Microsecond (16 digits) and nanosecond (19 digits) values exist too; divide them down to milliseconds before converting here.

Does Unix time include leap seconds?

No. POSIX time treats every day as 86,400 seconds, so a leap second has no number of its own and the difference between two timestamps can be off by the leap seconds in between. For logs and APIs this rarely matters.

Is a Unix timestamp tied to a time zone?

No. It always counts from midnight UTC on 1 January 1970, so 1700000000 is the same instant in London and Tokyo. Only the local date and time shown for it change.

How do I get the current timestamp in code?

In JavaScript, Math.floor(Date.now() / 1000) gives seconds. In Python, int(time.time()). In a shell, date +%s. In PostgreSQL, extract(epoch from now()), which includes a fractional part.

Why do JWT exp and iat claims look like this?

JSON Web Tokens store times as seconds since the epoch (RFC 7519 calls this NumericDate). Paste an exp value here with Seconds selected to see when a token expires, or open the token in the JWT Decoder.

Is anything I enter sent to a server?

No. All conversions use your browser’s built-in date functions, and the current time comes from your device’s clock, so if that clock is wrong, the “current” values are too.

Guides

Related tools