咖啡时间工具箱

Cron 生成与解析

输入 Cron 表达式,马上看到中文解释和接下来几次执行时间;也可以在下面分别填写分、时、日、月、周来生成表达式。全部在你的浏览器里计算,不会上传。

使用限制

本工具的 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 这样跨越回绕的范围。

使用方法

  1. 在“Cron 表达式”里输入表达式(或从“常用示例”选一个),下面的分、时、日、月、周五个框会同步;反过来修改任何一个框,上面的表达式也会同步更新。
  2. 选择时区。执行时间按所选时区的墙上时间计算和显示,并标出与 UTC 的偏移。
  3. 想从某个时刻往后看,在“从这个时间之后开始算”里选一个时间(按所选时区理解);留空就从现在开始。
  4. 结果里的“含义”是中文解释,下面按顺序列出接下来的执行时间。

常见问题

0 和 7 哪个是周日?

都是周日。0 到 6 对应周日到周六,7 也表示周日,这是大多数 cron 实现的约定。

“日”和“周”都填了,为什么触发得比预想的多?

标准 cron 在这种情况下是“或”的关系:满足日或周其一就执行。想要“每月 1 日且是周一”,标准 cron 做不到,常见做法是只写日,然后在脚本里判断星期。

为什么列出的时间和服务器上的不一样?

通常是时区不同。服务器、容器、云函数的 cron 经常使用 UTC,请在上面选对时区再核对。

我的表达式会被上传吗?

不会,解析和计算都在你的浏览器里完成。