Cron 表达式解析与执行时间预测
在线 Cron 表达式解析工具:逐字段对照中文含义,预测接下来 10 次执行时间,支持标准 5 段与含秒的 6 段写法。浏览器本地计算,不上传数据。
字段解析
接下来 10 次执行时间
Cron 表达式用 5 个(或 6 个)字段描述定时任务的执行规律:分、时、日、月、周,部分实现再加一个秒字段放在最前。字段之间用空格分隔,每段可写具体值、范围、列表或步长。
本工具把表达式逐字段翻译成中文,并推算出接下来 10 次的实际执行时间。写定时任务时最常犯的错误(周与日的含义混淆、月份与星期从 0 还是 1 开始)都会在这里暴露出来。
五个字段分别是什么
- 分:0–59,
*表示每分钟 - 时:0–23,注意是 24 小时制,写
3表示凌晨 3 点 - 日:1–31,即一个月中的第几天
- 月:1–12,也可写
JAN–DEC - 周:0–6(
0与7都表示周日),也可写SUN–SAT
日与周的优先级陷阱
当日与周都被限制(都不是 *)时,标准 cron 的语义是满足任意一个即可执行,而不是同时满足。例如 0 0 13 * 5 表示「每月 13 日」或「每个周五」都执行,而不是「13 日且是周五」。这是定时任务写错频率最常见的原因。本工具会检测到这种情况并明确提示。
常用表达式速查
*/5 * * * *— 每 5 分钟0 * * * *— 每小时整点0 3 * * *— 每天凌晨 3 点0 3 * * 1— 每周一凌晨 3 点0 0 1 * *— 每月 1 日零点0 9-18 * * 1-5— 工作日 9 点到 18 点每小时0 0 1 1 *— 每年 1 月 1 日零点
常见问题
5 段和 6 段有什么区别?
6 段写法在最前面多一个秒字段(0–59),通常需要设置 quartz 或带秒支持的调度器才生效。若你的调度器只支持 5 段,把 6 段表达式填进去会直接报错,需先确认所用实现的规范。
为什么预测时间和我预期差一天?
多半是周的取值理解有误。周日是 0(部分实现也接受 7),周一是 1。另外预测结果基于你本机的时区,如果服务器在别的时区,实际执行时间会相应偏移。
可以写 2 月 30 日吗?
语法上合法但永远不会触发。本工具在给定年限内找不到执行时间时会明确提示,帮助识别这类无效表达式。
L、W、# 这些符号支持吗?
不支持。这些是 Quartz 等实现的扩展语法(表示最后一个、最近工作日、第几个星期几)。本工具按标准 cron 规范解析,扩展语法会提示无法解析,避免给出错误的预测结果。