Cron 表达式教程

在线 Cron 表达式生成器怎么用?可视化生成定时任务 cron 表达式,理解分、时、日、月、周字段。

从一条真实表达式讲起

本站教程每天早上自动发布,用的表达式就是 30 8 * * *。拆开读:第 1 段 30 是分钟、第 2 段 8 是小时、第 3 段 * 是"每天"、第 4 段 * 是"每月"、第 5 段 * 是"星期几不限"——连起来是"每天 08:30 执行"。从今天 2026-10-15 推算,下一班次就是明天 08:30,这种"推演下一班次"是最实用的验证方法。

五个字段的含义与区间

  • 分钟:0-59(30 表示第 30 分钟)
  • 小时:0-23(8 表示早上 8 点,20 表示晚上 8 点)
  • 日期:1-31
  • 月份:1-12
  • 星期:0-6(0 和 7 都是周日,但部分系统只认 0)

三个进阶表达式

*/15 9-18 * * 1-5 表示工作日 9 点到 18 点内每 15 分钟一次,把刻度枚举出来是每小时 4 刻、工作时段共 24 刻。0 9 * * 1 是每周一 09:00。0 0 1 * * 是每月 1 日零点。写完把班次推演出来列三五个,和需求对表,比死记语法有效。

常见问题

日和周都写了会怎样?
两者是"或"关系:0 0 1 * 1 是"每月 1 日或每周一",不是"1 日且周一"。
为什么我的任务没跑?
先查服务器时区(容器与宿主机常差 8 小时),再查 crontab 是否有输出重定向撑爆日志。
能精确到秒吗?
标准 cron 最小粒度是分钟,部分调度器(Quartz)支持秒级字段为 6 段。

一条表达式值不值得信,推演三个班次就知道。

去使用 Cron 表达式工具