1798761600 是一个以秒为单位的 Unix 时间戳,它代表 2027-01-01T00:00:00Z。
同一瞬间的毫秒形式
JavaScript Date 要的是毫秒,所以等价的值是 1798761600000。
const seconds = 1798761600;
const date = new Date(seconds * 1000);
console.log(date.toISOString());
// 2027-01-01T00:00:00.000Z
单位弄错时的典型结果
把 1798761600 直接传给 new Date(),它会被当成毫秒,于是得到 1970-01-21T19:39:21.600Z。这个日期不是什么解析玄学,就是秒和毫秒弄混了。
在区间查询里用它
单个时间戳很适合拿来当测试夹具或已知事件的参照点。要查一段日期区间,请在目标时区里算出起点和下一个边界,然后用左闭右开的比较:大于等于起点,小于下一个起点。
Frequent questions:
- Q: Unix 时间戳 1798761600 是哪一天?
- A: 1798761600 作为 Unix 秒对应 2027-01-01T00:00:00.000Z,也就是 2027 年 1 月 1 日(星期五)00:00:00 UTC。
- Q: 1798761600 换成毫秒是多少?
- A: 1798761600000 毫秒表示的是同一瞬间——这正是 JavaScript Date 和 Java Instant 所需要的形式。
- Q: 为什么 new Date(1798761600) 显示的是 1970 年?
- A: 因为 JavaScript Date 接收的是毫秒。这个秒值被当成毫秒之后,就落到了 1970 年初。请改用 new Date(1798761600 * 1000)。
- Q: 在 shell 里怎么转换 1798761600?
- A: Linux 用 date -u -d @1798761600,macOS 用 date -u -r 1798761600。两条命令都会返回 UTC 日期。