cron時間表達式簡介

1、表達式格式

  秒數 分鐘 小時 日期 月份 星期 年份(只此可爲空)spa

  cron表達式是由空格分隔的6或7個字段組成的字符串。事件

2、字段取值範圍

  字段能夠包含任何容許的值,以及該字段容許的特殊字符的各類組合。字段以下:ci

字段名稱 強制性 容許的值 容許的特殊字符
0-59 , - * /
分鐘 0-59 , - * /
小時 0-23 , - * /
1-31 , - *?/ LW
1-12或JAN-DEC , - * /
星期 1-7或SUN-SAT , - *?/ L#
沒有 空,1970-2099 , - * /

 

 

 

 

 

 

 

 

 

 

注意字符串

一、星期裏,1表示的是星期天,2表示的是星期一,以此類推,7表示的是星期六get

二、?只存在於某天或某星期中,且不能同時存在(還不支持同時指定某天和星期)io

三、'L'和'W'字符也能夠在日期字段中組合以產生'LW',這轉換爲「最後一個工做日」table

四、法定字符以及月份和星期的名稱不區分大小寫,如MON 與mon相同ast

五、必定要注意設置時間zonefloat

3、特殊字符

字符 含義 使用範圍 描述 舉例
* 全部值 全部字段 用於選擇字段中的全部值 分鐘字段中的 * 表示每分鐘
- 用於指定範圍 全部字段 指定當前時間段位置上的一個時間範圍 小時字段中的10-12表示10到12內的小時數,即小時10,11和12這三個值
多個指定的值 全部字段 多個指定的值以逗號隔開 星期幾字段中的MON,WED,FRI表示 星期一,星期三和星期五
/ 指定增量 全部字段 左邊是開始觸發時間,右邊是每隔固定時間觸發一次事件 秒字段中的5/15表示 秒 5,20,35和50;也可直接/20,至關於在'/'以前有'0',即表示0,20,40
? 沒有特定值,不關心該字段的值 日,星期 須要在容許該字符的兩個字段之一中指定某些內容而在另外一個字段中則不須要時很是有用 某月的某個特定日期(例如,第10天)觸發,但不關心剛好在一週的哪一天,星期幾字段中可放置?
L last,容許的兩個字段的每個中具備不一樣的含義 日,星期 日期字段中的值L表示月份的最後一天,在星期幾字段中單獨使用,則僅表示7或SAT 還能夠指定從該月的最後一天開始的偏移量,例如L-3,這意味着該月的倒數第三天
W work,用於指定最接近給定日期的工做日(週一至週五) 先後和當前最接近工做日的那天,如當天是工做日則當天觸發,且不會跳過一個月的邊界 指定15W做爲日期字段的值,則含義爲:最接近該月的15日的工做日;若指定「1W」做爲日期的值,而且第1個是星期六,則將在當月的3號觸發
# 指定當月的第幾個星期幾 星期 指定當月的第幾個星期幾 星期幾字段中的6#3的值表示該月的第三個星期五(第6天=星期五,#3=該月份的第3個星期五)

4、示例

"0 0 12 * * ?" 天天12:00觸發事件
"0 15 10 ? * *" 天天10:15觸發事件
"0 15 10 * * ?" 天天10:15觸發事件
"0 15 10 * * ? *" 天天10:15觸發事件
"0 15 10 * * ? 2005" 2005年的天天10:15觸發事件
"0 * 14 * * ?" 天天14點開始觸發,每分鐘觸發一次,14:59分結束
"0 0/5 14 * * ?" 天天14點開始觸發到14:59分結束的每5分鐘觸發一次事件
"0 0/5 14,18 * * ?" 天天14點開始到14:59期間和18點到18:59期間的每5分鐘觸發一次事件
"0 0-5 14 * * ?" 天天14點到14:05期間的每1分鐘觸發一次事件
"0 10,44 14 ? 3 WED" 每一年3月的星期三的14:10和14:44觸發一次事件
"0 15 10 ? * MON-FRI" 週一至週五的10:15觸發一次事件
"0 15 10 15 * ?" 每個月15日10:15觸發一次事件
"0 15 10 L * ?" 每個月最後一日的10:15觸發一次事件
"0 15 10 ? * 6L" 每個月的最後一個星期五10:15觸發一次事件
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每個月的最後一個星期五10:15觸發一次事件
"0 15 10 ? * 6#3" 每個月的第三個星期五10:15觸發一次事件tutorial

參考:CronTrigger Tutorial

相關文章
相關標籤/搜索