DEVDESK / GUIDES
Cron 五字段与时区:为什么没有在预期时间运行?
表达式看起来正确,任务却差了八小时,或在额外日期执行。把字段语义、时区和调度平台分开检查,使用未来运行时间预览验证自己的理解。
打开工具:Cron 表达式解析1. 从工作日早上 9 点开始
本站接受五个字段,按顺序为分钟、小时、日、月、星期。输入下面第一行,选择时区后运行。第二行只是字段说明,不要一起粘贴。
0 9 * * 1-5
minute hour day-of-month month weekday2. 时区决定“9 点”对应哪个时刻
选择 Asia/Shanghai 时,这个规则对应工作日北京时间 09:00,即 UTC 01:00。选择 UTC 时则对应 UTC 09:00。两种设置的表达式文本相同,但实际时刻不同。
可在时间戳工具输入 2026-09-09T09:00:00+08:00,验证对应 UTC 01:00。Cron 预览使用本地化日期显示,不是可以直接粘贴转换的 ISO 文本。先确认部署平台接受什么时区。
3. 日与星期同时受限时要格外核对
不要把 0 9 1 * 1 想当然读成“每月 1 日且是星期一”。本站解析器的这两个日期条件按 OR 规则组合,因此可能在每月 1 日或星期一匹配。用连续预览时间验证这个差异。
不同调度器可能有不同的语法限制。六字段、七字段、Quartz 表达式和平台扩展不能直接按本站的五字段规则解释。
4. 检查夏令时与固定间隔的区别
纽约、伦敦等命名时区会受夏令时影响。“每天本地 9 点”不总是等价于每隔 24 小时。时钟切换时不存在或重复的本地时间,需要查看实际调度器的处理规则。
本站展示解析器算出的未来 8 次运行。它不会安装任务,也不能证明某个云平台会按相同策略补跑、跳过或重试。
5. 在部署端完成最后验证
保存表达式、时区和一组预期运行时间,再与实际任务日志比较。使用同一时区记录计划时间与开始时间,可以区分配置偏差和队列延迟。
- 确认字段数和平台支持的语法。
- 确认时区,而不是给输出手动加减小时。
- 任务应根据业务需要处理重复触发、失败重试和漏跑。