1704067200 is a Unix timestamp in seconds. It represents 2024-01-01T00:00:00Z.
The same instant in milliseconds
JavaScript Date expects milliseconds, so the equivalent value is 1704067200000.
const seconds = 1704067200;
const date = new Date(seconds * 1000);
console.log(date.toISOString());
// 2024-01-01T00:00:00.000Z
The common wrong-unit result
Passing 1704067200 directly to new Date() treats it as milliseconds and produces 1970-01-20T17:21:07.200Z. That date is not a parsing mystery; it is a seconds-versus-milliseconds mismatch.
Use it in a range query
A single timestamp makes a useful fixture or known-event reference. For a date range, calculate the start and 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 1704067200?
- A: 1704067200 in Unix seconds is 2024-01-01T00:00:00.000Z — Monday, January 1, 2024 at 24:00:00 UTC.
- Q: What is 1704067200 in milliseconds?
- A: 1704067200000 milliseconds is the same instant — the form JavaScript Date and Java Instant expect.
- Q: Why does new Date(1704067200) show 1970?
- A: JavaScript Date takes milliseconds. The seconds value treated as milliseconds points to early 1970. Use new Date(1704067200 * 1000) instead.
- Q: How do I convert 1704067200 in shell?
- A: Linux: date -u -d @1704067200. macOS: date -u -r 1704067200. Both return the UTC date.