Cron表达式生成器:在线生成 crontab / 中文释义 / 下次运行时间
Cron表达式生成器(也称Cron表达式在线生成、crontab生成器、Cron解析、定时任务表达式、cron generator)可在浏览器本地编写或可视化点选 Unix 五位、带秒六位表达式,实时给出中文释义,并按中国时区 / 浏览器本地 / UTC 预估下次运行时间。适合配置 Linux crontab、CI 调度,以及部分「秒 分 时 日 月 周」任务。全部在本地完成,表达式不上传。
一句话定义
Cron 表达式用空格分隔的字段描述「何时触发」。标准 Linux crontab 为五位:
分 时 日 月 周;Spring / 部分调度器可再加秒,变成六位:秒 分 时 日 月 周。字段数选错会导致整体错位,复制前请先确认目标引擎。
怎么用 Cron 表达式生成器
- 先选 Unix 五位(Linux crontab)或 带秒六位(Spring 等常见写法)。
- 直接改表达式,或点「常用预设」;也可在可视化区按「秒 / 分 / 时 / 日 / 月 / 周」分别选「每 / 间隔 / 范围 / 指定」。
- 核对中文释义与「下次运行时间」;时区默认中国(UTC+8),也可切浏览器本地或 UTC。
- 点「复制」贴进 crontab、CI 配置或调度平台;上线前用目标环境再验一次。
Cron 字段含义(五位 / 六位)
| 字段 | 取值 | 说明 |
|---|---|---|
| 秒(六位才有) | 0–59 | Linux crontab 无此字段;Spring 常见六位含秒 |
| 分 | 0–59 | * 每分钟;*/5 每 5 分钟(0,5,10…) |
| 时 | 0–23 | 24 小时制;9 表示 9 点整相关分钟 |
| 日 | 1–31 | 当月不存在的日期会被跳过(如 2 月 31 日) |
| 月 | 1–12 | 可用 JAN–DEC |
| 周 | 0–7 | 0 与 7 均为星期日;可用 SUN–SAT |
常用写法与符号
*:该字段每一次。,:列举,如1,15,30。-:范围,如1-5(周一到周五)、9-18。/:步长,如*/10、0-30/5(从起点按步长取值)。- 宏(五位常见):
@hourly、@daily、@weekly、@monthly、@yearly、@reboot。
常见场景示例
| 场景 | Unix 五位 | 带秒六位 |
|---|---|---|
| 每 5 分钟 | */5 * * * * |
0 */5 * * * * |
| 每天 8:30 | 30 8 * * * |
0 30 8 * * * |
| 工作日 9 点 | 0 9 * * 1-5 |
0 0 9 * * 1-5 |
| 每周一 9 点 | 0 9 * * 1 |
0 0 9 * * 1 |
| 每月 1 号 0 点 | 0 0 1 * * |
0 0 0 1 * * |
| 每 15 秒 | —(crontab 无秒) | */15 * * * * * |
页面「常用预设」已内置上述场景,点一下即可载入表达式并查看释义与下次时间。
日和周同时指定时
Linux cron 规定:日、周都不是 * 时,满足其中一个就会触发(或关系)。例如 0 0 1 * 1 表示「每月 1 号 或 每周一」的 0 点,不是「仅每月第一个周一」。只有一边限制时,按另一边过滤。Quartz 常用 ? 表示「不指定」;本页把 ? 当作 * 处理,移植到 Java Quartz 时请按官方文档改写。
适合做什么
- 写 Linux / 容器 crontab:备份、清理日志、拉数、健康检查。
- 核对 CI(GitHub Actions cron、GitLab schedule 等)与本地 crontab 字段是否一致。
- Spring
@Scheduled(cron = "…")等带秒表达式的草稿与释义。 - 排查「以为每天 9 点,实际是 UTC 9 点」这类时区偏差。
常见问题
Cron 表达式生成器和 crontab 里写的一样吗?
五位格式对齐常见 Linux cron(Vixie/cronie)。不同发行版、Kubernetes CronJob、云厂商调度器可能不支持秒字段或 @daily 等宏,请以目标平台文档为准。
Spring / Quartz 能直接用吗?
带秒六位接近 Spring CronTrigger 常见写法。Quartz 的 L、W、#、年字段本页不做完整模拟;且 Quartz 周日编号、日/周 ? 规则与 Linux 不同,移植时务必对照官方文档。
下次运行时间不准怎么办?
先确认时区与字段位数。服务器若是 UTC,表达式里的「9 点」是 UTC 9 点,不是北京时间。再确认目标引擎是否接受秒字段;五位贴进六位系统会整体错位。
@weekly 为什么是周日?
Vixie cron 把 @weekly 定为周日 00:00(等价 0 0 * * 0)。若要每周一,请用 0 0 * * 1(五位)或页面里「每周一」类预设。
为什么没有 2 月 31 日的下次时间?
不存在的日历日会被跳过。例如日字段写 31 时,二月不会触发,会等到下一个有 31 日的月份。
内容会上传吗?
不会。解析、释义与下次时间推算均在浏览器本地用 JavaScript 完成,页面不把表达式提交到服务器。
相关网络 / 开发工具
注意事项与免责声明
上线前请确认:字段位数与目标引擎一致、时区与服务器一致、日/周「或」语义符合预期。本页预估时间供配置参考,不能替代生产环境的真实调度结果。
本工具仅供学习与配置参考,不保证与所有操作系统、Quartz、Kubernetes 或云调度器行为完全一致。请在目标环境复核后再用于生产任务;因误配置导致的漏跑、重复执行或损失由使用者自行承担。
评论
暂无评论
来发表第一条评论吧