Unix Timestamp Converter (Epoch Time)
Convert Unix epoch timestamps to dates and back, plus Windows FILETIME, .NET ticks, Excel serial dates, GPS time, Julian Day and more formats.
Timestamp to date
Same moment in other formats
Date to timestamp
Show this date in other formats FILETIME, .NET ticks, Excel, GPS, Julian Day…
How to use it
The clock at the top shows the current Unix time, ticking live.
- Timestamp to date: paste a number. Unix time in seconds,
milliseconds, microseconds or nanoseconds is detected from its size; for
the other formats below, pick one from the Format menu. Thousands
separators, a decimal comma, negative values,
1e9and hexadecimal with0xare accepted. You get UTC, local time in any time zone, ISO 8601, RFC 2822, the HTTP date, a relative time and the same moment in every other format. - Date to timestamp: choose a date, a time and its time zone, or paste
a date string such as
2001-09-09T01:46:40Z,20010909T014640ZorSun, 09 Sep 2001 01:46:40 GMT. A string without an offset is read in the selected zone. Text that is not ISO 8601, an RFC 2822 or HTTP date, or JavaScript’sDate.toString()output is rejected rather than guessed.
What Unix time is
Unix time counts the seconds since 00:00:00 UTC on 1 January 1970, ignoring
leap seconds, so every day is exactly 86,400 seconds long. Moments before
1970 are negative: the Apollo 11 landing, 1969-07-20T20:17:40Z, is
-14182940.
| Digits today | Read as | Typical source |
|---|---|---|
| 10 | seconds | date +%s, PHP time(), Python time.time() |
| 13 | milliseconds | JavaScript Date.now(), Java currentTimeMillis() |
| 16 | microseconds | many databases and tracing tools |
| 19 | nanoseconds | Go UnixNano(), Python time.time_ns() |
Values below 1011 are read as seconds, below 1014 as milliseconds, below 1017 as microseconds and larger ones as nanoseconds, which is right for any moment from March 1973 to the year 5138. Numbers are exact integers, so all 19 digits of a nanosecond value are kept.
Other timestamp formats
| Format | Counts | Since | Seen in |
|---|---|---|---|
| Windows FILETIME | 100 ns | 1601-01-01 | NTFS, Active Directory, the registry |
| .NET ticks | 100 ns | 0001-01-01 | C# DateTime.Ticks |
| WebKit / Chrome | µs | 1601-01-01 | Chrome history and cookies |
| Excel serial | days | 1899-12-30 or 1904-01-01 | spreadsheets |
| Apple Cocoa | seconds | 2001-01-01 | NSDate, Core Data |
| Mac HFS+ | seconds | 1904-01-01 | HFS+ disks, MP4 and QuickTime files |
| GPS | seconds | 1980-01-06 | GPS receivers and logs |
| Julian Day | days | noon, 1 January 4713 BC (Julian calendar) | astronomy |
| Modified Julian Day | days | 1858-11-17 | science and satellite data |
- Excel’s 1900 system counts a February 29, 1900 that never existed, copied from Lotus 1-2-3, so serial 60 is that day. From 1900-03-01 on its serials match Google Sheets and LibreOffice; earlier ones differ by a day. The 1904 system, the old Mac default, is 1,462 days lower.
- Serial dates and Julian Days carry no time zone. They are read and written as UTC, rounded to the millisecond.
- GPS time does not skip leap seconds, so it runs ahead of UTC by every leap second added since 1980: 18 seconds since 1 January 2017. The converter applies the IERS list for each date and 18 seconds after it; a new leap second would shift later values by one. The GPS week and second of the week are shown too.
- FILETIME and .NET ticks have 18 digits and WebKit time 17, so auto-detect reads them as Unix time, then offers any format that gives a date between 1980 and 2100 under Could also be. Cocoa, HFS+ and GPS values count seconds like Unix time and cannot be told apart by size, so choose them from the menu.
The year 2038 problem
Many older systems store Unix time in a signed 32-bit integer, whose largest
value is 2,147,483,647, or 2038-01-19T03:14:07Z. One second later the counter
wraps to 1901-12-13T20:45:52Z. Current 64-bit systems are not affected, but
embedded devices, old file formats and 32-bit database columns such as
MySQL’s TIMESTAMP still are. The converter flags any Unix value outside
the 32-bit range.
Frequently asked questions
What is the current Unix timestamp?
It is the ticking number at the top of this page, taken from your device’s clock. Unix time is the same in every time zone, so the value is identical for everyone at the same instant.
How can I tell seconds from milliseconds?
Count the digits. A current timestamp in seconds has 10 digits and one in milliseconds has 13. The converter checks the size for you and shows which unit it used.
Why is my converted time off by a few hours?
The timestamp itself is always UTC-based. An offset of whole hours usually means the date was read or written in the wrong time zone. Check the UTC row and the time zone selector.
How do I convert a Unix timestamp to a date in Excel or Google Sheets?
Spreadsheets count days rather than seconds, so divide by 86,400 and add the epoch with =A2/86400 + DATE(1970,1,1), then format the cell as a date and time. For milliseconds, divide by 86,400,000 instead. The result is UTC; for a local time add the offset in days, such as -5/24 for UTC−5. The reverse is =(A2 - DATE(1970,1,1)) * 86400. Google Sheets also has =EPOCHTODATE(A2), which returns the UTC date and time directly.
Is anything I paste sent to a server?
No. Every conversion runs in your browser with JavaScript. Nothing you type is uploaded, logged or stored, and the page works offline once it has loaded.