Cron 表达式解析
输入 5 段式 crontab 表达式,立即看懂含义并预测未来执行时间
每分钟
每 5 分钟
每小时整点
每天 3 点
每周一 9 点
每月 1 日 0 点
工作日 9-18 点每 30 分钟
每周日 2 点
表达式含义
字段对照 依次为:分钟 / 小时 / 日 / 月 / 星期
未来 10 次执行时间 按你所在时区计算
Cron 表达式怎么读
Linux 的 crontab 表达式由 5 个字段组成,从左到右依次是分钟(0-59)、小时(0-23)、日(1-31)、月(1-12)、星期(0-7,其中 0 和 7 都表示周日)。字段里可以写单个数字,也可以用特殊语法组合:
*:任意值,表示「每一个」。比如小时字段写*就是每小时都执行。*/n:每隔 n 个单位。比如*/5在分钟字段表示每 5 分钟。a-b:区间。比如小时字段9-18表示 9 点到 18 点之间每小时。a,b,c:列举。比如星期字段1,3,5表示周一、三、五。- 组合写法如
9-18/2:在 9 到 18 点之间每 2 小时。
举例
0 3 * * *:每天凌晨 3 点整执行一次。*/10 * * * *:每 10 分钟执行一次。30 2 * * 1:每周一凌晨 2 点 30 分执行。0 0 1 * *:每月 1 号零点执行。0 9-18 * * 1-5:周一到周五,每天 9 点到 18 点之间的整点执行。
容易踩的坑
- 日和星期同时限制时是「或」关系:写成
0 0 1 * 1,含义是「每月 1 号或每周一」执行,而不是两者同时满足。这是 Vixie cron 的规范行为,本工具按此处理。 - 分钟字段别写
*又想要「只跑一次」:那样会在这一小时内执行 60 次。 - 时区:crontab 使用服务器本地时区。容器里通常是 UTC,与北京时间差 8 小时,写表达式时要注意,本工具按你浏览器所在时区预测。
- 带秒的 6 段式不是标准 crontab:
Spring @Scheduled、Quartz 使用 6~7 段格式且含义不同,请勿直接套用。
常见问题
工具支持 6 段(带秒)的表达式吗?
不支持。本站解析的是 Linux crontab 标准的 5 段格式。Quartz 等框架的第一段是秒,第六段是年,含义不同,需要单独换算。
为什么预测的时间和我服务器上跑的时间对不上?
预测结果按你浏览器所在时区显示。如果服务器或容器使用 UTC,实际执行时间会比预测结果晚 8 小时(北京时间)。
支持 @daily、@reboot 这类写法吗?
已支持 @yearly、@monthly、@weekly、@daily、@hourly 的自动转换;@reboot 属于启动触发,没有时间规律,无法预测。