spring定時器時間表示式

2021-07-30 18:46:36 字數 4099 閱讀 2538

1

.秒(0–59) 2

.分鐘(

0–59) 3

.小時(

0–23) 4

.月份中的日期(

1–31) 5

.月份(

1–12

或jan–dec) 6

.星期中的日期(

1–7或

sun–sat) 7

.年份(

1970–2099

) 0 0 10,14,16 * * ? 

每天上午10點

,下午2點和下午4點 

0 0,15,30,45 * 1-10 * ? 

每月前10

天每隔15

分鐘 30 0 0 1 1 ? 2012 

在2023年1

月1日午夜過

30秒時 

0 0 8-5 ? * mon-fri 

每個工作日的工作時間 

各個時間可用值如下: 

秒0-59 , - * / 

分0-59 , - * / 

小時0-23 , - * / 

日1-31 , - * ? / l w c 

月1-12 or jan-dec , - * / 

週幾1-7 or sun-sat , - * ? / l c # 年(

可選字段

) empty, 1970-2099 , - * / 

可用值詳細分析如下: 

「*」——

字元可以用於所有字段,在「分

」欄位中設為

"*"表示

"每一分鐘

"的含義。 

「?」——

字元可以用在「日

」和「週幾

」欄位.它用來指定

'不明確的值

'.這在你需要指定這兩個欄位中的某乙個值而不是另外乙個的時候會被用到。在後面的例子中可以看到其含義。 

「-」——

字元被用來指定乙個值的範圍,比如在「小時

」欄位中設為

"10-12"

表示"10

點到12點"

。 「,」——

字元指定數個值。比如在「週幾

」欄位中設為

"mon,wed,fri"

表示"the days monday, wednesday, and friday"

。 「/」——

字元用來指定乙個值的的增加幅度

.比如在「秒

」欄位中設定為

"0/15"表示"

第0, 15, 30,和45

秒"。而"5/15"

則表示"

第5, 20, 35,

和50".

在'/'

前加"*"

字元相當於指定從

0秒開始

.每個欄位都有一系列可以開始或結束的數值。對於「秒

」和「分

」字段來說,其數值範圍為0到

59,對於「小時

」字段來說其為0到

23,對於「日

」字段來說為0到

31,而對於「月

」字段來說為1到

12。"/"字段僅僅只是幫助你在允許的數值範圍內從開始"第

n"的值。 

「l」——

字元可用在「日

」和「週幾

」這兩個字段。它是

"last"

的縮寫,

但是在這兩個欄位中有不同的含義。例如,「日

」欄位中的

"l"表示

"乙個月中的最後一天

" ——

對於一月就是

31號對於二月來說就是

28號(非閏年)。而在「週幾

」欄位中

,它簡單的表示

"7" or "sat"

,但是如果在「週幾

」欄位中使用時跟在某個數字之後

,它表示

"該月最後乙個星期

×" ——

比如"6l"表示"

該月最後乙個周五

"。當使用

'l'選項時

,指定確定的列表或者範圍非常重要,否則你會被結果搞糊塗的。 

「w」——

可用於「日」

字段。用來指定歷給定日期最近的工作日

(周一到周五

)。比如你將「日

」欄位設為

"15w"

,意為: "

離該月15

號最近的工作日

"。因此如果

15號為週六,觸發器會在

14號即周五呼叫。如果

15號為週日

,觸發器會在

16號也就是周一觸發。如果

15號為周二

,那麼當天就會觸發。然而如果你將「日

」欄位設為

"1w",

而一號又是週六

,觸發器會於下周一也就是當月的

3號觸發

,因為它不會越過當月的值的範圍邊界。

'w'字元只能用於「日

」欄位的值為單獨的一天而不是一系列值的時候。 

「l」和

「w」可以組合用於「日

」字段表示為

'lw'

,意為"

該月最後乙個工作日"。 

「#」——

字元可用於「週幾

」字段。該字元表示

「該月第幾個周

×」,比如

"6#3"

表示該月第三個周五

( 6表示周五而

"#3"

該月第三個

)。再比如

: "2#1" =

表示該月第乙個周一而

"4#5" =

該月第五個週三。注意如果你指定

"#5"

該月沒有第五個「周

×」,該月是不會觸發的。 

「c」——

字元可用於「日

」和「週幾

」字段,它是

"calendar"

的縮寫。它表示為基於相關的日曆所計算出的值(如果有的話)。如果沒有關聯的日曆

,那它等同於包含全部日曆。「日

」字段值為

"5c"表示"

日曆中的第一天或者

5號以後",

「週幾」字段值為

"1c"

則表示"

日曆中的第一天或者週日以後"。 

對於「月份」

欄位和「週幾」

字段來說合法的字元都不是大小寫敏感的。 

一些例子: 

"0 0 12 * * ?"

每天中午十二點觸發 

"0 15 10 ? * *"

每天早上10:

15觸發 

"0 15 10 * * ?"

每天早上10:

15觸發 

"0 15 10 * * ? *"

每天早上10:

15觸發 

"0 15 10 * * ? 2005" 2005

年的每天早上10:

15觸發 

"0 * 14 * * ?"

每天從下午

2點開始到2點

59分每分鐘一次觸發 

"0 0/5 14 * * ?"

每天從下午

2點開始到2:

55分結束每

5分鐘一次觸發 

"0 0/5 14,18 * * ?"

每天的下午2點至

2:55和

6點至6點

55分兩個時間段內每

5分鐘一次觸發 

"0 0-5 14 * * ?"

每天14:00

至14:05

每分鐘一次觸發 

"0 10,44 14 ? 3 wed"

三月的每週三的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 

spring定時器時間表示式

字段 允許值 允許的特殊字元 秒 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點觸發 0 15 10 每天上午10 15...

Spring定時器的時間表示式

字段 允許值 允許的特殊字元 秒 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點觸發 0 15 10 每天上午10 15...

定時器的時間表示式

字段 允許值 允許的特殊字元 秒 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點觸發 0 15 10 每天上午10 15...