Quartz cron(6~7 段)
格式:秒 分 时 日 月 周 [年],共 6 个必填域 + 1 个可选「年」域,域之间用空格分隔。
* * * * * * * - - - - - - - | | | | | | | | | | | | | +-- 年(可选,1970-2099) | | | | | +------ 周(1-7 或 SUN-SAT,1=周日) | | | | +---------- 月(1-12 或 JAN-DEC) | | | +-------------- 日(1-31) | | +------------------ 时(0-23) | +---------------------- 分(0-59) +-------------------------- 秒(0-59)
| 位置 | 字段 | 必填 | 取值范围 | 可用特殊字符 |
|---|---|---|---|---|
| 1 | 秒 | 是 | 0-59 | * - / , |
| 2 | 分 | 是 | 0-59 | * - / , |
| 3 | 时 | 是 | 0-23 | * - / , |
| 4 | 日 | 是 | 1-31 | * - / , ? L W C |
| 5 | 月 | 是 | 1-12 或 JAN-DEC | * - / , |
| 6 | 周 | 是 | 1-7 或 SUN-SAT | * - / , ? L # C |
| 7 | 年 | 否 | 1970-2099 | * - / , |
在线生成:cron 表达式生成器 · 详细教程:cron 表达式教程
Linux crontab(5 段)
格式:分 时 日 月 周,无「秒」域;标准 Linux cron 不支持 ?、L、W、# 等 Quartz 扩展符号。
* * * * * | | | | | | | | | +------ 周(0-7,0 与 7 均为周日) | | | +---------- 月(1-12) | | +-------------- 日(1-31) | +------------------ 时(0-23) +---------------------- 分(0-59)
| 位置 | 字段 | 取值范围 | 可用特殊字符 |
|---|---|---|---|
| 1 | 分 | 0-59 | * , - / |
| 2 | 时 | 0-23 | * , - / |
| 3 | 日 | 1-31 | * , - / |
| 4 | 月 | 1-12 | * , - / |
| 5 | 周 | 0-7(0、7=周日) | * , - / |
在线生成:crontab 表达式生成器 · 详细教程:crontab 教程
特殊字符(Quartz)
| 字符 | 含义 | 示例 |
|---|---|---|
* | 匹配域内任意值 | 0 * * * * ? 每分钟的第 0 秒执行 |
- | 区间范围 | 0 6-18 * * * ? 每天 6~18 点每分钟执行 |
/ | 起始值起按步长递增 | 0 0/15 * * * ? 从 0 分起每 15 分钟 |
, | 列举多个值 | 0 0 8,10 * * ? 每天 8 点、10 点 |
? | 不指定;仅用于「日」「周」,且二者需有一个为 ? | 0 0 0 20 * ? 每月 20 号 |
L | 最后;日=本月最后一天,周=最后一个指定星期 | 0 0 0 L * ? 每月最后一天 0 点 |
W | 离指定日最近的工作日(仅「日」域) | 0 0 0 15W * ? 离 15 号最近的工作日 |
LW | 本月最后一个工作日 | 0 0 10 LW * ? |
# | 第 N 个星期 X(仅「周」域) | 0 0 0 ? * 4#2 第二个周三 |
常用表达式示例
| 说明 | Quartz(6 段) | Linux crontab(5 段) |
|---|---|---|
| 每秒 | * * * * * ? | — |
| 每分钟 | 0 * * * * ? | * * * * * |
| 每小时整点 | 0 0 * * * ? | 0 * * * * |
| 每天凌晨 | 0 0 0 * * ? | 0 0 * * * |
| 每天 9 点 | 0 0 9 * * ? | 0 9 * * * |
| 工作日 9 点 | 0 0 9 ? * MON-FRI | 0 9 * * 1-5 |
| 每 15 分钟 | 0 0/15 * * * ? | */15 * * * * |
| 每月 1 号 0 点 | 0 0 0 1 * ? | 0 0 1 * * |
工具说明
cron 字段速查表汇总 Quartz 与 Linux crontab 的字段顺序、取值范围与特殊字符,便于配置定时任务时快速查阅。完整语法说明与案例请见 cron 教程、crontab 教程。
日 vs 周
Quartz 中「日」「周」互斥:指定具体日期时「周」用 ?,指定星期时「日」用 ?。Linux crontab 中「日」「周」为 OR 关系,通常只明确其中一个,另一个用 *。
沪公网安备31010502007661号