字段含义
| 字段 | 取值 | 可用符号 |
|---|---|---|
| 分钟 | 0–59 | * , - / |
| 小时 | 0–23 | 同上 |
| 日 | 1–31 | 同上 |
| 月 | 1–12 | 同上,也支持 JAN–DEC |
| 星期 | 0–6(0 为周日) | 同上,也支持 SUN–SAT |
*/5 表示每 5 个单位;1-5 表示范围;1,15 表示列举。当「日」和「星期」都不是 * 时,按 cron 惯例取两者的并集。
常见问题
为什么「日」和「星期」同时限定时结果变多了?
这是标准 cron 的语义:只要两者都不为 *,任意一个匹配即触发,相当于「或」。想表达「每月 1 号且是周一」这种「且」,需要把判断放到应用逻辑里。
Linux 的 cron 有 5 段,为什么有些系统有 6 段?
Quartz 等调度器在前面多一段「秒」,共 6 段。本工具按 Linux crontab 的 5 段标准解析;若你用的是 6 段表达式,请先去掉秒字段。
计算的时间和系统时区有关吗?
有关。本工具按你浏览器所在时区计算;服务器上 crontab 的时间以服务器时区为准,跨地域部署时要留意差异。
怎么用
- 在输入框里粘贴标准五段式表达式
- 点解析按钮,查看每个字段的含义和取值范围
- 看下方的运行时间列表,了解接下来几次触发时刻
- 改一改表达式再点解析,对比运行时间的变化
适用场景
- 接手同事留下的定时任务,先解析表达式确认执行频率
- 写每日凌晨的数据清理任务,核对触发时间对不对
- 排查任务没跑的问题,看最近几次运行时间是否正常
- 调试周报生成脚本,确认它只在每周一执行
注意事项
- 只支持标准 5 段写法,带秒或年份的 6 段、7 段表达式要先删掉多余字段再解析
- 日和星期同时写了限定条件时,多数实现按或的关系处理,运行次数会比你预期的多
- 运行时间按浏览器当前时区推算,服务器在别的时区时需要自己换算
- 一次最多推算 10 次运行时间,间隔很长的任务可能只列出最近几次
- 表达式只在本地解析,不会发送到任何服务器
- 日与星期组合时若遇上小月,当月可能根本没有匹配的运行日