Unix 时间戳是从 1970 年 1 月 1 日 00:00:00 UTC 开始计数的秒数,是程序里表示"一个绝对时刻"的标准方式。数据库、日志、API 返回的时间字段几乎都是时间戳,但它对人不可读,所以需要转换成日期时间来核对。
最常见的坑是单位混用:10 位数字是秒,13 位数字是毫秒。如果拿 13 位的毫秒值当秒去转,结果会落在公元 5 万年;反过来拿 10 位秒值当毫秒,结果会落在 1970 年。本工具两种单位都支持,选错时结果会明显异常,可以据此发现单位问题。
另一个常见问题是时区:同一个时间戳,上海(UTC+8)和纽约(UTC-5)显示的"日期时间"不同,但它们是同一时刻。本工具按你浏览器所在的本地时区显示,如果你在核对服务器日志,请确认服务器时区和你的时区是否一致。
标准 Cron 表达式由 5 个字段组成,从左到右依次是:
| 字段 | 取值范围 | 示例 |
|---|---|---|
| 分 | 0–59 | 0 = 第 0 分 |
| 时 | 0–23 | 2 = 凌晨 2 点 |
| 日 | 1–31 | 1 = 每月 1 号 |
| 月 | 1–12 | * = 每月 |
| 周 | 0–7(0 和 7 都是周日) | 1-5 = 周一至周五 |
常用示例:0 2 * * * = 每天凌晨 2 点;*/15 * * * * = 每 15 分钟一次;0 9-17 * * 1-5 = 工作日 9 点到 17 点整点各执行一次。在上方输入表达式点「验证」,可以看到中文解析结果和未来 5 次执行时间,用来确认调度配置是否符合预期。
问:转换结果和服务器日志里的时间差了几个小时?
答:多半是时区不一致。时间戳本身没有时区,显示结果取决于按哪个时区渲染。本工具按浏览器本地时区显示,请先确认服务器日志使用的时区。
问:为什么 13 位时间戳转出来是 1970 年?
答:单位选错了。13 位是毫秒、10 位是秒,切换右上角的单位选项即可。
问:我的 Cron 为什么没有按时执行?
答:先用「验证 & 预览」看未来 5 次执行时间是否符合预期。常见原因包括:把 5 字段表达式写成了 6 字段(多了秒位)、日和周同时限定(标准 Cron 里两者同时非 * 时是"或"的关系)、以及服务器时区与你预期不符。