跳到正文
马克工具箱

Cron 表达式解析

粘贴 Cron 表达式,就能看到它的中文含义,以及在你的时区或服务器时区下接下来会在什么时间执行。支持标准 crontab、带秒的表达式、Quartz 风格的 ? 以及 @daily 等简写。

在浏览器本地运行,输入的内容和文件都不会上传

在09:00, 星期一至星期五

0
分
9
时
*
日
*
月
1-5
周

接下来的执行时间

  1. 1—
  2. 2—
  3. 3—
  4. 4—
  5. 5—
  6. 6—
  7. 7—
  8. 8—
  9. 9—
  10. 10—

常用示例

使用步骤

  1. 输入或粘贴表达式,例如 0 9 * * 1-5。
  2. 查看中文说明以及每个字段的取值。
  3. 选择服务器所在时区,查看接下来 10 次实际的执行时间。
  4. 点击右侧的常用示例,快速得到常见的定时规则。

参数说明

字段
5 个字段依次是分、时、日、月、周。前面再加一个字段表示秒(Spring、Quartz、XXL-JOB 等使用)。
特殊字符
* 表示任意值;, 表示列举(1,15);- 表示范围(1-5);/ 表示间隔(*/10 即每 10)。Quartz 在日和周字段中用 ? 表示不指定。
星期
0 或 7 表示周日,1 表示周一,也可以写 MON-FRI 这样的英文缩写。
时区
定时任务按服务器时区执行,云服务器通常是 UTC。在这里选择对应时区,就能看到任务真正触发的时间。

常用表达式

表达式 执行时间
* * * * * 每分钟
*/15 * * * * 每 15 分钟
0 * * * * 每小时整点
0 9 * * 1-5 工作日 9:00
30 2 * * * 每天 2:30
0 0 * * 0 每周日零点
0 0 1 * * 每月 1 日零点
0 0 1 1 * 每年 1 月 1 日零点
0 0 12 * * ? 每天 12:00(Quartz,带秒)

常见问题

*/5 * * * * 是什么意思?

每 5 分钟执行一次,即每小时的第 0、5、10……分钟。

为什么任务执行时间差了 8 小时?

最常见的原因是服务器使用 UTC,而你是按北京时间写的表达式。上方选择 UTC 就能看到真实的执行时间;也可以给任务设置 CRON_TZ 或 TZ 环境变量(如果调度器支持)。

日和星期同时指定时怎么算?

标准 cron 中,如果两个字段都限定了值(例如 0 0 1 * 1),只要满足其中一个就会执行,即每月 1 日和每周一都会执行。Quartz 为避免歧义,要求其中一个字段写 ?。

支持 Kubernetes CronJob、GitHub Actions 的定时吗?

支持,两者都使用标准的 5 位 cron。GitHub Actions 默认按 UTC 时区计算。

隐私说明

本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。

相关工具