Notable Unix Timestamps and Epoch Milestones
· referencefundamentals
1234567890, 2147483647, 1000000000 — the timestamps worth recognising, and the boundaries worth having in your test fixtures.
A reference for the epoch values that recur in documentation, test data and bug reports.
Boundaries that matter
| Timestamp | Instant (UTC) | Why it matters |
|---|---|---|
-2147483648 |
13 Dec 1901, 20:45:52 | Signed 32-bit floor |
-2208988800 |
1 Jan 1900, 00:00:00 | Common alternative epoch |
-1 |
31 Dec 1969, 23:59:59 | One second before the epoch |
0 |
1 Jan 1970, 00:00:00 | The Unix epoch |
2147483647 |
19 Jan 2038, 03:14:07 | Signed 32-bit overflow |
4294967295 |
7 Feb 2106, 06:28:15 | Unsigned 32-bit overflow |
253402300799 |
31 Dec 9999, 23:59:59 | Maximum four-digit year |
8640000000000 |
13 Sep 275760 | JavaScript Date maximum (in seconds) |
The first and fifth rows are the ones to put in test fixtures. See the Year 2038 problem.
Round numbers
| Timestamp | Instant (UTC) | Note |
|---|---|---|
1000000000 |
9 Sep 2001, 01:46:40 | The “billennium” — widely celebrated |
1234567890 |
13 Feb 2009, 23:31:30 | Sequential digits; parties were held |
1111111111 |
18 Mar 2005, 01:58:31 | Repdigit |
1500000000 |
14 Jul 2017, 02:40:00 | |
1600000000 |
13 Sep 2020, 12:26:40 | |
1700000000 |
14 Nov 2023, 22:13:20 | |
2000000000 |
18 May 2033, 03:33:20 | Next round-number milestone |
2222222222 |
2 Jun 2040, 03:57:02 | Repdigit, after the 2038 boundary |
1234567890 in particular shows up constantly as placeholder data — if you see it in production, it is almost certainly a fixture that escaped.
Other epochs you will meet
Unix time is not the only epoch, and mixing them produces characteristic offsets:
| System | Epoch | Offset from Unix |
|---|---|---|
| Unix / POSIX | 1 Jan 1970 | — |
| Windows FILETIME | 1 Jan 1601 | 11,644,473,600 s (in 100 ns ticks) |
| Apple / Cocoa | 1 Jan 2001 | 978,307,200 s |
| GPS | 6 Jan 1980 | 315,964,800 s, plus 18 leap seconds |
| NTP | 1 Jan 1900 | 2,208,988,800 s |
| Excel | 30 Dec 1899 | 25,569 days |
| .NET ticks | 1 Jan 0001 | 100 ns ticks since year 1 |
| Julian Day | 24 Nov 4714 BC | Used in astronomy |
Recognising the offset identifies the bug. A date 31 years off is Apple’s 2001 epoch — see the Swift notes on the code page. A date about 70 years off is the NTP or 1900 epoch. Roughly 369 years off is Windows FILETIME.
NTP wraps in 2036. Its 32-bit unsigned seconds field overflows on 7 February 2036, two years before the Unix 2038 boundary and much less widely discussed.
Fixture values worth keeping
A good set of test timestamps, each chosen to break something different:
-2208988800 1900-01-01 pre-epoch, negative
-1 1969-12-31 the second before zero
0 1970-01-01 the epoch; also "unset field"
951782400 2000-02-29 leap day in a century year divisible by 400
1078012800 2004-02-29 ordinary leap day
1709164800 2024-02-29 recent leap day
1710054000 2024-03-10 inside the US spring-forward gap (02:00 EST)
1730613600 2024-11-03 inside the US fall-back repeat
2147483647 2038-01-19 32-bit boundary
2147483648 2038-01-19 one past the boundary
4102444800 2100-01-01 a century year that is NOT a leap year
The 2000 and 2100 pair is worth including: 2000 was a leap year (divisible by 400) and 2100 is not (divisible by 100 but not 400). Naive leap-year code that only checks divisibility by four gets both wrong.
Timestamps as dates you can read
For rough mental dating of a 10-digit value:
| Prefix | Approximate year |
|---|---|
09… |
2000 |
12… |
2008 |
14… |
2014 |
16… |
2020 |
17… |
2023–2025 |
18… |
2027 |
20… |
2033 |
Each 100 million seconds is about 3 years and 2 months, which is enough precision to sanity-check a value at a glance.
Converting any of these
Paste any value into the converter, or link directly with a query parameter — for example /unix-timestamp-to-date?t=1234567890. The countdown page shows the time remaining to the 2038 boundary.