Unix Timestamp Converter

Convert Unix timestamps (epoch time) to dates and back. Seconds, milliseconds, microseconds and nanoseconds are detected from the digit count, so you can paste a 10-digit or a 13-digit value without thinking about it. Results are shown in your own time zone, in UTC, and in ISO 8601, with one-click copy on every row. Built for reading logs and API responses.

This tool has been used times.
1

The Current Unix Timestamp

The timestamp for right now, refreshed four times a second. Copy it straight into a test fixture or a query.

Unix seconds (10 digits)
Unix milliseconds (13 digits)
UTC
2

Unix Timestamp to Date

Paste a number and the unit is worked out from the digit count. You can also pin the unit yourself.

Load a common value
3

Date to Unix Timestamp

Pick a date and time to get Unix seconds, Unix milliseconds and ISO 8601. Choose which time zone the value you typed should be read as.

How to Use

  1. Paste the number you copied out of a log or an API response into the “Unix timestamp” field. The unit is detected from the digit count, so 10-digit and 13-digit values both work as they are. Even a fragment like created_at: 1769490245, works: any run of 8 or more digits is pulled out automatically.
  2. Switch between your own time zone, UTC and JST to read the date, and copy any row with the button beside it.
  3. To go the other way, fill in the “Date to Unix Timestamp” panel. Your input is saved automatically and restored the next time you open the page.

Unix Timestamp Reference

Telling the unit from the digit count

DigitsUnitExampleWhere it comes from
10Seconds1769490245PHP time(), shell date +%s, Python time.time()
13Milliseconds1769490245123JavaScript Date.now(), Java System.currentTimeMillis()
16Microseconds1769490245123456Distributed tracing spans and high-resolution access logs
19Nanoseconds1769490245123456789Go time.Now().UnixNano(), Python time.time_ns()

Reading a 13-digit value as seconds lands you more than fifty thousand years in the future, which is exactly why the digit count is such a reliable tell. Values pasted with thousands separators are fine too; commas, spaces and underscores are stripped automatically.

Seconds in common intervals

IntervalSecondsTypical use
1 minute60The smallest unit for things like token lifetimes
1 hour3,600Time zone offsets (UTC+09:00 is 32,400 seconds)
1 day86,400Daily batch jobs, pulling the last 24 hours of logs
1 week604,800Weekly rollups, week-on-week comparisons
30 days2,592,000Cache retention, a rough month boundary
365 days (common year)31,536,000Retention measured in years
366 days (leap year)31,622,400A year that crosses 29 February

Unix time counts every day as exactly 86,400 seconds, so leap seconds never move the number. Only the extra day in a leap year shows up, as the last two rows show.

Start of each year, 00:00:00 UTC

YearUnix seconds
20201,577,836,800
20211,609,459,200
20221,640,995,200
20231,672,531,200
20241,704,067,200
20251,735,689,600
20261,767,225,600
20271,798,761,600
20281,830,297,600
20291,861,920,000
20301,893,456,000

Two consecutive rows give you the bounds for a whole year, which is what you want for a query like ts >= 1767225600 AND ts < 1798761600. For a year boundary in a different zone, subtract the offset: UTC+09:00 starts 32,400 seconds earlier.

Round numbers and the dates they land on

Unix secondsUTCWhat it is
01970-01-01 00:00:00The epoch. Anything earlier is negative
1,000,000,0002001-09-09 01:46:40The moment it reached 10 digits
1,500,000,0002017-07-14 02:40:00A round value you often see in test data
2,000,000,0002033-05-18 03:33:20The next round milestone
2,147,483,6472038-01-19 03:14:07The largest signed 32-bit integer, the year 2038 problem

Unix Timestamp Basics

Unix timestampTime expressed as the number of seconds elapsed since 1970-01-01 00:00:00 UTC. Also called epoch time or POSIX time. Being a plain integer, it survives moving between languages and databases
The epoch1970-01-01 00:00:00 UTC. That instant is 0, and anything before it is negative
Seconds against milliseconds10 digits means seconds, 13 means milliseconds. JavaScript’s Date.now() and Java return milliseconds, while PHP’s time() and most Unix commands return seconds
Microseconds and nanoseconds16 digits means microseconds, 19 means nanoseconds. Common in distributed tracing and logging pipelines, such as Go’s time.UnixNano()
No time zone is carriedA Unix timestamp is a single value measured against UTC and holds no regional information. Whether you read it as London time or Tokyo time is entirely a display decision
ISO 8601A format such as 2026-07-27T15:04:05+09:00 that writes the date, the time and the offset from UTC together. A trailing Z means UTC
The year 2038 problemStoring seconds in a signed 32-bit integer overflows at 2147483647, which is 2038-01-19 03:14:07 UTC. Moving to 64-bit storage resolves it
Leap seconds are ignoredUnix time counts every day as 86,400 seconds, so leap seconds are never added. Timekeeping that has to be exact below the second needs a different mechanism

Frequently Asked Questions

What is the difference between a 10-digit and a 13-digit timestamp?
Only the unit. A 10-digit value counts seconds (1769490245) and a 13-digit value counts milliseconds (1769490245123); both describe the same kind of instant. Read a 13-digit value as seconds and you land more than fifty thousand years in the future, which makes the digit count a dependable signal. This tool detects the unit automatically and prints what it decided just under the input field.
Does a Unix timestamp include a time zone?
No. A Unix timestamp is a single number measured against UTC, and the same instant produces the same value anywhere in the world. There is no such thing as a “timestamp in local time”, so never add or subtract your offset before storing it. Doing that guarantees inconsistencies later; store the plain value and convert only when displaying.
What is the year 2038 problem?
On systems that hold Unix timestamps in a signed 32-bit integer, the maximum is 2147483647, which is 2038-01-19 03:14:07 UTC. Past that the value overflows and dates wrap around to 1901. Modern 64-bit environments are unaffected in practice, but old embedded devices and database columns still defined as 32-bit integers are not. The preset button loads the exact value so you can see it convert.
Can it convert dates before 1970?
Yes. Anything before the epoch is negative, so -86400 is 1969-12-31 00:00:00 UTC. This tool accepts a leading minus sign. Be aware that some systems never expected negative timestamps, so check what your storage layer does before relying on them.
Can I paste text from a log without cleaning it up first?
Yes. Given something like created_at: 1769490245, the tool picks out the longest run of 8 or more digits and converts that. It reports which number it extracted just below the field, so you can confirm it chose the one you meant. Commas, spaces and underscores are stripped as well, so 1,769,490,245 is fine as it stands.
How do I turn milliseconds into seconds?
Divide by 1000 and discard the remainder. You do not have to do it by hand here: paste a 13-digit value and the results include both “As Unix seconds” and “As Unix milliseconds”, ready to copy. That makes it easy to compare values that were recorded in different units.

Please also review the Terms of Use for this web app before using it.

Found a bug or have feedback? Let us know here.

Report bugs, display issues, usability problems, or suggestions for improvement.
Consent
・This form is for bug reports only. In principle, we do not respond to individual submissions.
・If a submission contains defamatory, threatening, or otherwise inappropriate content, we may take appropriate action based on logs such as IP addresses.

目次