如果你手上是日历日期或钟面时间,需要的是一个 Unix 时间戳,那就用这个转换器。第一步永远是选时区:2026-06-20 09:25 这样的写法,在被指定到某个地方或 UTC 之前,还算不上一个确定的瞬间。
一套不容易出错的流程
- 按对方给你的原样填入日期和时间,别自己先做换算。
- 选中拥有这个钟面读数的 IANA 时区,比如 America/New_York 或 Asia/Tokyo。
- 给类 Unix 接口就复制秒;给 JavaScript Date、浏览器 API 或其他按毫秒记录的系统就复制毫秒。
- 如果这个日程是按当地办公时间定义的,把时区名和记录一起存下来。
日期区间请当成左闭右开来处理
把统计日的起点和次日的起点都转到目标时区,然后取“大于等于第一个边界、小于第二个边界”。这样就不用去构造带零点几秒的“当日结束时间”,而且在夏令时让某一天变长或变短时,行为依然正确。
夏令时带来的边界情况
春季切换时,某些本地时间根本不存在;秋季切换时,有一个小时会出现两次。如果这些值是由用户填的,那就把 IANA 时区和用户选定的那个瞬间一起存下来,别依赖服务器的本地时钟。
Frequent questions:
- Q: 怎么把日期转成 epoch 时间?
- A: 在转换器里选好日期、时间和时区,然后按秒或毫秒复制结果。不带时区的“零点”是有歧义的,所以要选那个日历日所属的时区。
- Q: 「时间转 epoch」和「日期转 epoch」是一回事吗?
- A: 是的。两种说法都是指把一个人读的钟面值,换算成从 1970-01-01 00:00:00 UTC 起的秒数或毫秒数。
- Q: 怎么把 datetime 转成 Unix 时间戳?
- A: 填入完整的日期时间并指定它的时区。转换器会给出同一瞬间对应的 Unix 秒、Unix 毫秒、ISO 8601 和 UTC 值。
- Q: 该用秒还是毫秒?
- A: 大多数后端语言、数据库和命令行工具用秒;JavaScript Date、浏览器 API、Java、.NET 和各类埋点事件用毫秒。