Unix Timestamp Converter

Convert seconds (or milliseconds) since 1970 into a date, and a date back into that number. Mixing up the two units is a common way to land 1,000× off, so the unit is inferred from the magnitude — and which way it was read is stated in the result.

Now

—

· ms

What you enter never leaves your device. Times follow this browser's timezone setting.

What Unix time is

It counts the seconds elapsed since midnight UTC on 1 January 1970. There is no time zone in it, so the same instant is the same number in Seoul and in London — which is why logs and databases favour it. Leap seconds are not counted; a day is always 86,400 seconds. Instants before 1970 are negative.

Seconds, milliseconds, and other units

JavaScript's Date.now() and Java's currentTimeMillis() give milliseconds; Python's time.time() and most databases give seconds. Here anything with an absolute value above 1e11 is read as milliseconds. Microseconds (16 digits) get misread as milliseconds and land thousands of years out, so if the result looks absurd, check the line that says which unit was assumed. Values that cannot become a date (beyond ±8.64e15 ms) and .NET ticks (18 digits) come back as unreadable.

How date text is read

Anything that is not a number is handed to the browser's Date.parse. A trailing Z or +09:00 is read in that zone; a bare date like 2026-08-14 is read as midnight UTC; a time without a zone, like 2026-08-14 09:30, is read in this device's zone. This rule is why a date-only input can appear shifted by your UTC offset.

Reading the result rows

The ISO 8601 row is always UTC and ends in Z — pass that to an API and there is no argument about zones. Below it come UTC, the same instant in this device's zone, and the distance from now. The current time at the top is recounted every second and is only filled in after the page has loaded.

What is read as neither a number nor a date

A number means an integer of up to seventeen digits, with only a leading - allowed. A decimal point as in 1700000000.5, thousands separators as in 1,700,000,000, or a leading + mean it is read as neither a number nor a date. Dates are left to the browser, so details vary a little — Chrome reads 2026/08/14 and Aug 14 2026 but not 14.08.2026. The one to watch for is a date written as eight bare digits, 20260814: no error, it is read as seconds and lands on a day in August 1970.

Zero, negatives, and the digit boundary

0 is midnight UTC on 1 January 1970, and negatives are earlier — -1 is 23:59:59 UTC on 31 December 1969. The 1e11 boundary between seconds and milliseconds is the year 5138 read as seconds and 3 March 1973 read as milliseconds, so a millisecond value from before March 1973 has fewer than twelve digits and is read as seconds.

Frequently asked questions

How does it decide between seconds and milliseconds?

By magnitude. Anything above 1e11 is read as milliseconds, because reading a value that large as seconds would put you in the year 5138. The result says which interpretation was used, so you can check it.

Does a timestamp carry a time zone?

No. It is only the seconds since midnight UTC on 1 January 1970, so the number alone says nothing about where. Read in Seoul the same value appears nine hours later than in UTC — which is usually the explanation when two logs look nine hours apart.

What is the 2038 problem?

Systems storing a timestamp in a signed 32-bit integer run past the largest value they can hold on 19 January 2038 and wrap to a negative number. Most modern languages use 64 bits, but old C code and database column types still carry it.

How do I turn milliseconds into seconds?

Divide by a thousand. Whether you truncate or round can shift the result by a second, so if you are lining up logs, make sure both sides do the same thing.

What about a timestamp with a decimal point?

It is not read. For a value like 1700000000.123 from time.time(), drop the fraction and enter whole seconds, or multiply by a thousand and enter whole milliseconds.

Does anything I paste get sent to a server?

No. Everything runs inside your browser and nothing is uploaded or stored. That is why you can use it on things you would not normally paste into a web page, like an internal config file or a production query. It also works with your network disconnected.