Cron 生成与解析
输入 Cron 表达式,马上看到中文解释和接下来几次执行时间;也可以在下面分别填写分、时、日、月、周来生成表达式。全部在你的浏览器里计算,不会上传。
使用限制
- 只支持5 段标准 cron,不支持秒、年、
?LW#、@reboot、H;你的任务系统如果用的是 Quartz、Spring、Jenkins、云厂商的扩展写法,请先确认它的方言。 - 日和周同时限定时(两段都不是以 * 开头):按标准 cron(Vixie cron)规则,满足“日”或“周”任意一个就触发,不是同时满足。例如
0 0 1 * 1表示每月 1 日以及每个周一。如果其中一段以*开头(如*/2),则要求两段同时满足。 - 夏令时地区:春季被跳过的时间(例如 2:30)不会触发;秋季重复出现的时间只算第一次。这是本工具的简化规则,具体任务系统的行为可能不同。
- 最多往后查找约 30 年;表达式永远不会触发(例如 2 月 31 日)时会明确提示。
- 周几的名称和缩写按英文三字母(
MON、JAN)识别,不区分大小写。
本工具的 cron 方言:5 段标准 cron(分 时 日 月 周),支持
*、列表 1,15、范围 1-5、步长 */15 和 1-30/5,月份和星期可写英文缩写(JAN-DEC、MON-FRI),星期 0 和 7 都表示周日,另支持 @yearly @annually @monthly @weekly @daily @midnight @hourly。不支持:带“秒”或“年”的 6、7 段写法(Quartz、Spring)、? L W #、@reboot、Jenkins 的 H,以及 22-2 这样跨越回绕的范围。含义
接下来的执行时间
使用方法
- 在“Cron 表达式”里输入表达式(或从“常用示例”选一个),下面的分、时、日、月、周五个框会同步;反过来修改任何一个框,上面的表达式也会同步更新。
- 选择时区。执行时间按所选时区的墙上时间计算和显示,并标出与 UTC 的偏移。
- 想从某个时刻往后看,在“从这个时间之后开始算”里选一个时间(按所选时区理解);留空就从现在开始。
- 结果里的“含义”是中文解释,下面按顺序列出接下来的执行时间。
常见问题
0 和 7 哪个是周日?
都是周日。0 到 6 对应周日到周六,7 也表示周日,这是大多数 cron 实现的约定。
“日”和“周”都填了,为什么触发得比预想的多?
标准 cron 在这种情况下是“或”的关系:满足日或周其一就执行。想要“每月 1 日且是周一”,标准 cron 做不到,常见做法是只写日,然后在脚本里判断星期。
为什么列出的时间和服务器上的不一样?
通常是时区不同。服务器、容器、云函数的 cron 经常使用 UTC,请在上面选对时区再核对。
我的表达式会被上传吗?
不会,解析和计算都在你的浏览器里完成。