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 规范解析,扩展语法会提示无法解析,避免给出错误的预测结果。

相关教程

相关工具