2147483647 is a Unix timestamp in seconds. It represents 2038-01-19T03:14:07Z.
The same instant in milliseconds
JavaScript Date expects milliseconds, so the equivalent value is 2147483647000.
const seconds = 2147483647;
const date = new Date(seconds * 1000);
console.log(date.toISOString());
// 2038-01-19T03:14:07.000Z
The common wrong-unit result
Passing 2147483647 directly to new Date() treats it as milliseconds and produces 1970-01-25T20:31:23.647Z. That date is not a parsing mystery; it is a seconds-versus-milliseconds mismatch.
Use it in a range query
A single timestamp is useful for a fixture or a known event. For a date range, calculate the start boundary and the next boundary in the intended timezone, then use a half-open comparison: greater than or equal to the start and less than the next start.
Frequent questions:
- Q: What date is Unix timestamp 2147483647?
- A: 2147483647 in Unix seconds is 2038-01-19T03:14:07.000Z — Tuesday, January 19, 2038 at 03:14:07 UTC.
- Q: What is 2147483647 in milliseconds?
- A: 2147483647000 milliseconds is the same instant — the form JavaScript Date and Java Instant expect.
- Q: Why does new Date(2147483647) show 1970?
- A: JavaScript Date takes milliseconds. The seconds value treated as milliseconds points to early 1970. Use new Date(2147483647 * 1000) instead.
- Q: How do I convert 2147483647 in shell?
- A: Linux: date -u -d @2147483647. macOS: date -u -r 2147483647. Both return the UTC date.