Cron 表达式在线生成与中文反解

支持 Linux Crontab (5段) 与 Spring / Quartz (6~7段) 定时任务表达式在线配置与人类自然语言即时翻译。

标准 5 / 6 / 7 段语法支持
开发者特惠 阿里云官方合作专区

阿里云爆款云服务器 · 开发者上云特惠 99元/年起

2核2G/2核4G 高性能轻量服务器、OSS 对象存储与云数据库限时特价,专属通道直达优惠。

中文含义解析:请输入合法的 Cron 表达式

高频常用 Cron 预设模板 (点击快速填入)

涵盖分钟、小时、每日、每周与工作日定时调度

Cron 表达式结构规范:Linux Crontab (5段) vs Quartz / Spring (6~7段)

不同运行环境的字段顺序与有效取值范围差异对照。

段位序号字段名称Linux Crontab (5段)Spring / Quartz (6~7段)允许的特殊字符
1秒 (Seconds)不支持 (最小为分钟)0 - 59* , - /
2分钟 (Minutes)0 - 59 (第 1 段)0 - 59* , - /
3小时 (Hours)0 - 23 (第 2 段)0 - 23* , - /
4日期 (Day of Month)1 - 31 (第 3 段)1 - 31* , - / ? L W
5月份 (Month)1 - 12 (第 4 段)1 - 12 或 JAN-DEC* , - /
6星期 (Day of Week)0 - 7 (0与7皆为周日)1 - 7 (1为周日) 或 SUN-SAT* , - / ? L #
7年份 (Year)不支持留空或 1970 - 2099 (选填)* , - /

Cron 表达式特殊字符详细含义速查

深入理解星号、问号、斜杠与减号等通配符的组合规则。

* (星号)匹配所有可能的值

代表所在字段的任意值。例如在分钟位置表示“每一分钟”,在小时位置表示“每小时”。

? (问号)不指定明确值 (消歧)

仅在“日期”和“星期”两个互斥字段中使用。若其中一个字段已确定(如每月 1 号),另一个字段必须填 ? 以消除冲突。

/ (斜杠)指定增量步进

表示数值递增。0/15 在分钟位置表示从 0 分开始每隔 15 分钟触发一次(0、15、30、45)。*/5 表示每隔 5 单位执行一次。

- 与 , (减号与逗号)连续区间与枚举列表

10-12 表示包含 10、11、12 的闭区间;1,3,5 表示在第 1、第 3、第 5 时刻分别触发。

Cron 表达式常见技术问答 (FAQ)

星号与问号差异、Linux Crontab 常用管理指令与跨时区注意事项。

Q1: 为什么在 Java Quartz 中必须在日或周填问号 (?)?

在标准历法中,“某月几号”与“星期几”在概念上是彼此独立的。如果同时在日期字段填 15,在星期字段填 MON,由于并不是每个月的 15 号都是星期一,会导致逻辑冲突。因此 Quartz 规定两个字段中必须有一个显式指定为 ?(无特定值),以避开语义冲突。而在 Linux Crontab 中无 ? 语法,默认填 *。

Q2: Linux 服务器中管理 Crontab 的核心命令有哪些?

常用命令包括:
• crontab -e:编辑当前登录用户的定时调度任务;
• crontab -l:列出当前正在运行的所有定时任务;
• crontab -r:删除当前用户的所有定时任务;
• tail -f /var/log/cron 或 grep CRON /var/log/syslog:查看任务执行实时日志。

Q3: 定时任务执行时遇到时区(Timezone)偏差该如何排查?

Cron 守护进程依据的是操作系统当前的系统时间与时区设置(可通过 timedatectl 或 date -R 检查)。如果云服务器时区被默认设为 UTC+0,而期望按北京时间(UTC+8)执行,任务会发生 8 小时的推迟。建议在 Linux 中通过 timedatectl set-timezone Asia/Shanghai 将系统时区统一校准。