1735689600 是一个以秒为单位的 Unix 时间戳,它代表 2025-01-01T00:00:00Z

同一瞬间的毫秒形式

JavaScript Date 要的是毫秒,所以等价的值是 1735689600000

const seconds = 1735689600;
const date = new Date(seconds * 1000);

console.log(date.toISOString());
// 2025-01-01T00:00:00.000Z

单位弄错时的典型结果

1735689600 直接传给 new Date(),它会被当成毫秒,于是得到 1970-01-21T02:08:09.600Z。这个日期不是什么解析玄学,就是秒和毫秒弄混了。

在区间查询里用它

单个时间戳很适合拿来当测试夹具或已知事件的参照点。要查一段日期区间,请在目标时区里算出起点和下一个边界,然后用左闭右开的比较:大于等于起点,小于下一个起点。

Frequent questions:

Q: Unix 时间戳 1735689600 是哪一天?
A: 1735689600 作为 Unix 秒对应 2025-01-01T00:00:00.000Z,也就是 2025 年 1 月 1 日(星期三)00:00:00 UTC。
Q: 1735689600 换成毫秒是多少?
A: 1735689600000 毫秒表示的是同一瞬间——这正是 JavaScript Date 和 Java Instant 所需要的形式。
Q: 为什么 new Date(1735689600) 显示的是 1970 年?
A: 因为 JavaScript Date 接收的是毫秒。这个秒值被当成毫秒之后,就落到了 1970 年初。请改用 new Date(1735689600 * 1000)。
Q: 在 shell 里怎么转换 1735689600?
A: Linux 用 date -u -d @1735689600,macOS 用 date -u -r 1735689600。两条命令都会返回 UTC 日期。