0 * * * * ?
点击表达式可复制到剪贴板
秒 (0-59)
分 (0-59)
时 (0-23)
日 (1-31)
月 (1-12)
周 (0-6)
未来执行时间预览
正在计算...

常用表达式

每分钟

0 * * * * ?

每分钟的第0秒执行

每小时

0 0 * * * ?

每小时的第0分执行

每天零点

0 0 0 * * ?

每天凌晨0点执行

每天中午

0 0 12 * * ?

每天12:00:00执行

每周一零点

0 0 0 ? * MON

每周一凌晨0点执行

每月1号零点

0 0 0 1 * ?

每月1日凌晨0点执行

每年1月1日

0 0 0 1 1 ?

每年元旦凌晨0点执行

每5秒

0/5 * * * * ?

每5秒执行一次

每5分钟

0 0/5 * * * ?

每5分钟执行一次

工作时间每小时

0 0 8-18 * * ?

8点到18点,每小时执行

工作日早9:30

0 30 9 ? * MON-FRI

周一至周五上午9:30执行

每月最后一天

0 0 0 L * ?

每月最后一天凌晨0点执行

Cron表达式语法说明

字段 允许值 允许特殊字符 说明
0-59 , - * / 0表示第0秒
0-59 , - * / 0表示第0分
0-23 , - * / 0表示零点
1-31 , - * ? / L W L表示最后一天,W表示最近工作日
1-12 或 JAN-DEC , - * / 可使用英文缩写
0-6 或 SUN-SAT , - * ? / L # 0=周日,L表示最后一个,#表示第几个

特殊字符说明:

* 匹配所有值    ? 不指定值(日/周互斥时使用)    - 范围(如 1-5

, 枚举多个值(如 1,3,5)   / 步长(如 0/5 表示从0开始每5个)

L 最后(日字段中表示月的最后一天,周字段中表示最后一个周X)

W 最近工作日(如 15W 表示离15号最近的工作日)   # 第几个(如 6#3 表示第3个周六)

Cron表达式在线生成与解析工具

Cron表达式是一种用于定义定时任务执行时间的字符串格式,广泛应用于Linux系统任务调度、Java应用定时任务配置等场景。本工具提供可视化的Cron表达式编辑器,支持6位(含秒)和标准5位格式,实时预览未来执行时间,帮助开发者快速生成和验证Cron表达式。

功能特色

  • 可视化编辑:秒/分/时/日/月/周六个字段独立配置,直观易用
  • 实时预览:输入表达式后立即展示未来8次执行时间
  • 常用模板:内置12个常用Cron表达式,一键套用
  • 语法参考:完整的字段说明和特殊字符用法速查
  • 一键复制:点击表达式即可复制到剪贴板,方便粘贴到配置文件

使用场景

  • Linux crontab:配置系统级定时任务,如日志轮转、数据备份、磁盘清理
  • Spring @Scheduled:Spring Boot应用中使用@Scheduled注解配置定时方法
  • Quartz调度器:企业级任务调度框架,支持复杂的触发规则和集群部署
  • xxl-job / ElasticJob:分布式任务调度平台,Cron表达式定义执行周期
  • CI/CD流水线:GitHub Actions、Jenkins等持续集成工具的定时触发配置
  • 数据库维护:MySQL Event Scheduler、Oracle DBMS_SCHEDULER定时执行SQL

常见问题

Cron表达式的标准格式是什么?

Cron表达式由多个用空格分隔的字段组成。标准Linux crontab使用5个字段:分 时 日 月 周;Spring/Quartz等Java框架使用6个字段:秒 分 时 日 月 周;部分系统还支持第7个字段表示年份。本工具默认使用6字段格式(含秒)。

5位、6位和7位Cron表达式有什么区别?

5位格式(分 时 日 月 周)是Linux crontab的标准格式,最小精度为分钟;6位格式(秒 分 时 日 月 周)是Spring和Quartz的格式,支持秒级精度;7位格式在6位基础上增加年份字段,Quartz支持但较少使用。不同框架对字段的解析规则也略有差异。

星号(*)和问号(?)有什么区别?

星号(*)表示匹配该字段的所有值,可用于任何字段。问号(?)表示"不指定",仅能用于日和周两个字段。由于日和周存在逻辑互斥(如"每月15号"和"每周一"可能冲突),当其中一个字段指定具体值时,另一个应设为问号。在Spring中两者等价,在Quartz中必须严格使用问号。

有哪些常用的Cron表达式示例?

常用示例:每分钟执行 0 * * * * ?,每小时执行 0 0 * * * ?,每天零点 0 0 0 * * ?,工作日9:30 0 30 9 ? * MON-FRI,每5分钟 0 0/5 * * * ?,每月1号零点 0 0 0 1 * ?,每月最后一天 0 0 0 L * ?

Cron表达式有时区问题吗?

有。Cron表达式本身不包含时区信息,执行时间取决于运行环境的时区设置。Linux crontab使用系统时区;Spring默认使用JVM时区,可通过@Scheduled的zone属性指定;Quartz通过CronTrigger.setTimeZone()设置。跨时区部署时需特别注意配置。

如何在线测试Cron表达式是否正确?

使用本工具即可在线测试:在输入框中填写或修改各字段的值,页面会实时计算并展示未来8次执行时间。如果表达式格式错误或无法匹配,会显示错误提示。也可以点击"常用表达式"中的预设模板快速验证。