工作原理
表达式先被拆分成字段,每个字段再展开成它实际匹配的值。下次运行时间按所选时区的时钟逐日向后查找,最多查到8年后,所以像2月29日这样少见的日期也能显示。传统 Unix cron 中,如果同时限定了日和星期,只要其中一个匹配就会运行;Spring 和 Quartz 则要求两者都匹配。
*/15 9-17 * * MON-FRI → 每15分钟,9点到17点,工作日
字段说明
- *:所有值。*/15:从起点开始每隔15。5/15:从5开始每隔15。
- 9-17:9到17的范围。1,15:仅1日和15日。
- 名称:MON–SUN 和 JAN–DEC,不区分大小写。简写:@yearly、@monthly、@weekly、@daily、@hourly。
- L:当月最后一天(L-3 为最后一天前3天)。15W:离15日最近的工作日。LW:最后一个工作日。
- FRI#2:第二个星期五。5L:最后一个星期五(Quartz 编号)。?:不指定值。
- 6或7个字段:第一个是秒。Quartz 可在末尾加年份,星期按1(周日)到7(周六)计数。
使用提示
- “每周一9点”是0 9 * * MON——日期保持*,只看星期即可。
- 0 0 29 2 *会找出下一个闰日,没有2月29日的年份会自动跳过。
- 一切都在浏览器内运行,不会上传任何内容。
标准与出处
- cron格式遵循POSIX crontab定义和广泛使用的Vixie/ISC cron行为
最后核对 2026年10月12日
常见问题
五个字段分别是什么意思?
从左到右依次是分钟(0–59)、小时(0–23)、日期(1–31)、月份(1–12)和星期(0–6,星期天排在最前)。0 9 * * MON表示每周一9点。
日期和星期都限定时会怎样?
满足其中之一就会运行。例如0 9 1 * MON会在每月1日和每周一运行,这种OR规则就是传统cron的行为。
为什么0 0 29 2 *有些年份会跳过?
2月29日只在闰年出现,其他年份没有匹配日期,下次运行就会跳到下一个闰日。
运行时间是我的时区吗?
是的。默认以设备时钟为准,按本地时间显示。切换时区后,还能看到运行在 UTC 或纽约时间的服务器何时触发。