首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Quartz Cron 表達式完整指南:語法、特殊字符與實用範例大全

     編輯:Java 相關知識

前言

Quartz CronTrigger 基於日曆概念實現複雜排程,比簡單間隔觸發更強大。本文系統整理 Cron 表達式語法、特殊字符含義、字段取值範圍及 20+ 實用範例,作為排程配置速查手冊。

一、Cron 表達式結構

格式:秒 分 時 日 月 周 [年(可選)]
字段數:6 或 7 個子表達式,空格分隔

字段取值範圍與特殊字符

字段允許值特殊字符
秒0-59, - * /
分0-59, - * /
時0-23, - * /
日1-31, - * ? / L W C
月1-12 / JAN-DEC, - * /
周1-7 / SUN-SAT, - * ? / L C #
年(可選)1970-2099, - * /

二、特殊字符深度解析

符號名稱含義示例
*所有值匹配字段所有合法值* * * * * ? 每秒觸發
?不指定值僅用於 日/周 字段,表示無具體值0 0 12 ? * * 每天中午 12 點
-範圍包含邊界的連續範圍MON-FRI 週一到週五
,枚舉列出多個離散值MON,WED,FRI 週一三五
/增量n/m 從 n 開始每 m 單位0/15 每分鐘 0、15、30、45 秒
L最後日字段=月最後一天;周字段=最後一個周X6L 本月最後一個週五
W工作日日字段專用,最近工作日(週一至週五)15W 最接近 15 號的工作日
#第 N 個周字段專用,本月第 N 個周 X6#3 本月第三個週五
C日曆關聯日曆,較少用-

三、高頻實用範例庫

需求Cron 表達式說明
每 5 秒*/5 * * * * ?秒字段 */5
每 1 分鐘0 */1 * * * ?分字段 */1
每天 23:000 0 23 * * ?時=23,分秒=0
每天 01:000 0 1 * * ?時=1
每月 1 號 01:000 0 1 1 * ?日=1
每月最後一天 23:000 0 23 L * ?日字段 L
每週日 01:000 0 1 ? * L周字段 L (最後一周=週日)
第 26、29、33 分0 26,29,33 * * * ?分字段枚舉
每天 0、13、18、21 時0 0 0,13,18,21 * * ?時字段枚舉
工作日 09:300 30 9 ? * MON-FRI周字段範圍
每月第三個週五 10:000 0 10 ? * 6#3周字段 # 語法
每季度最後一天 23:590 59 23 L 3,6,9,12 ?月字段枚舉 + 日 L

四、常見錯誤與避坑

  1. 日與周衝突:兩字段不能同時具體指定,必須一個用 ?
  2. 秒/分/時範圍越界:秒分 0-59,時 0-23
  3. 年字段誤用:6 字段表達式不支援年,需 7 字段版本
  4. L 與列表/範圍不能組合:L-3、L,15 均無效
  5. W 只能用於具體日期:15W 合法,*W 非法

五、在線驗證工具推薦

六、總結

掌握 Cron 表達式核心在於:理解 6/7 字段語義、熟練 9 大特殊字符組合、避開日周互斥陷阱。建議收藏本文範例庫,配置排程時直接對照複製微調,並用在線工具驗證下次觸發時間,確保排程精準可控。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved