字段配置

按秒 / 分 / 时 / 日 / 月 / 周 / 年逐项选择,右侧实时生成表达式。

每秒 允许的通配符[, - * /]
周期 -
间隔 秒开始,每 秒执行一次
指定
每分钟 允许的通配符[, - * /]
周期 - 分钟
间隔 分钟开始,每 分钟执行一次
指定
每小时 允许的通配符[, - * /]
周期 - 小时
间隔 小时开始,每 小时执行一次
指定
AM:
PM:
每日 允许的通配符[, - * / L W]
不指定
周期 -
间隔 日开始,每 天执行一次
每月 号最近的那个工作日
每月最后一天
指定
每月 允许的通配符[, - * /]
周期 -
间隔 月开始,每 月执行一次
指定
每周 允许的通配符[, - * / L #]
不指定
周期 -
本月最后一个
指定
周字段写法:
数字 1~7(1=周日,2=周一,…,7=周六)
英文 SUN、MON、TUE、WED、THU、FRI、SAT
不指定 允许的通配符[, - * /] 非必填
每年
周期 -
间隔 年开始,每 年执行一次
指定

生成结果

随左侧选择实时更新,可反解析到 UI 或一键复制。

20次执行时间:
Cron表达式(Quartz Cron表达式)是一种用于指定定时任务执行时间的字符串表达式。它由6个或者7个字段组成,分别表示秒、分钟、小时、天数、月份、星期几以及年。每个字段都可以使用特定的符号来指定时间范围或间隔。详细教程请参考:Cron教程
*   *   *   *   *   *   *
-   -   -   -   -   -   -
|   |   |   |   |   |   |
|   |   |   |   |   |   +-- 年(可选字段)
|   |   |   |   |   +------ 周 (星期天 ~ 星期六使用1-7或者SUN,MON,TUE,WED,THU,FRI,SAT)
|   |   |   |   +---------- 月 (1 - 12或者JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC)
|   |   |   +-------------- 日 (1 - 31)
|   |   +------------------ 时 (0 - 23)
|   +---------------------- 分 (0 - 59)
+-------------------------- 秒 (0 - 59)

除了基本的数字范围外,Cron 表达式还支持一些特殊符号和字符:
  • 星号(*):表示匹配任意值。例如,* 在分钟字段中表示每分钟都执行。
  • 逗号(,):用于分隔多个值。例如,1,3,5 在小时字段中表示 1 点、3 点和 5 点执行。
  • 斜线(/):用于指定间隔值。例如,*/5 在分钟字段中表示每 5 分钟执行一次。
  • 连字符(-):用于指定范围。例如,10-20 在日期字段中表示从 10 号到 20 号。
  • 问号(?):仅用于【日】和【周】字段,表示不指定具体值。通常用于避免冲突。
  • 井号(#):表示第几个星期几,格式:weekday#n,例如6#2表示第2个星期五。
  • 英文(L):用于【日】和【周】字段,表示本月最后一天和本周最后一个星期X。
  • 英文(W):表示离目标日期最近的工作日,比如15W表示在每月最接近15号的工作日。
  • 英文(C):用于【日】字段或【周】字段,需要和Calendar一起使用,在项目中很少使用。


一些经典的cron表达式:
Cron 表达式 描述
0 0/5 * * * ? 每5分钟执行
0 0,30 * * * ? 每30分钟执行一次
0 0/15 6-23 * * ? 早6点到晚11点每15分钟执行
0 0 2 ? * SAT,SUN 周六周日凌晨2点执行
0 0 9-18 * * MON-FRI 工作日9点到18点整点执行
0 0 0 1 * ? 每月1号凌晨执行
0 0 0 ? * MON 每周一凌晨执行
0 0 0 * * ? 每天凌晨执行
0 0 2,10,14,18 * * ? 每天2点、10点、14点、18点执行
0 0 2 1 1,4,7,10 ? 季度初1号凌晨2点执行
0 0 23 L * ? 每月最后一天的23点整执行
0 15 10 ? * 6L 2024-2030 2024年至2030年的每月的最后一个星期五上午10:15触发
Cron表达式非常灵活,可以满足各种定时任务的需求。