Cron表達式是由6所需的字段和一個可選字段由空格分隔 spa
Cron表達式的格式:秒 分 時 日 月 周 年(可選) ci
Field Name | |
Allowed Values | |
Allowed Special Characters |
---|---|---|---|---|
Seconds | |
0-59 | |
, - * / |
Minutes | |
0-59 | |
, - * / |
Hours | |
0-23 | |
, - * / |
Day-of-month | |
1-31 | |
, - * ? / L W |
Month | |
1-12 or JAN-DEC | |
, - * / |
Day-of-Week | |
1-7 or SUN-SAT | |
, - * ? / L # |
Year (Optional) | |
empty, 1970-2199 | |
, - * / |
「*」字符被用來指定全部的值。如:"*"在分鐘的字段域裏表示「每分鐘」。 io
「?」字符只在日期域和星期域中使用。它被用來指定「非明確的值」。當你須要經過在這兩個域中的一個來指定一些東西的時候,它是有用的。因爲"月份中的日期"和"星期中的日期"這兩個元素互斥的,必需要對其中一個設置一個問號. table
「-」字符被用來指定一個範圍。如:「10-12」在小時域意味着「10點、11點、12點」。"0 0 9 ? * 2-6" 週一到週五天天上午9點 ast
「,」字符被用來指定另外的值。如:「MON,WED,FRI」在星期域裏表示」星期1、星期3、星期五」。 im
「/」字符用於指定增量。如:「0/15」在秒域意思是每分鐘的0,15,30和45秒。「5/15」在分鐘域表示每小時的5,20,35和50。符號「」在「/」前面(如:/10)等價於0在「/」前面(如:0/10)。記住一條本質:表達式的每一個數值域都是一個有最大值和最小值的集合,如:秒域和分鐘域的集合是0-59,日期域是 1-31,月份域是1-12。字符「/」能夠幫助你在每一個字符域中取相應的數值。如:「7/6」在月份域的時候只有當7月的時候纔會觸發,並非表示每一個6月。 英文
L是‘last’的省略寫法,在day-of-month和day-of-week域兩個字段中意思不一樣,例如day-of- month域中表示一個月的最後一天("0 15 10 L * ?"每個月最後一日的上午10:15觸發)。若是在day-of-week域表示‘7’或者‘SAT’,若是在day-of-week域中前面加上數字,它表示一個月的最後星期幾,例如‘6L’就表示一個月的最後一個星期五。 tab
字符「W」只容許日期域出現。這個字符用於指定日期的最近工做日。例如:若是你在日期域中寫 「15W」,表示:這個月15號最近的工做日。因此,若是15號是週六,則任務會在14號觸發。若是15好是週日,則任務會在週一也就是16號觸發。若是是在日期域填寫「1W」即便1號是週六,那麼任務也只會在下週一,也就是3號觸發,「W」字符指定的最近工做日是不可以跨月份的。字符「W」只能配合一個單獨的數值使用,不可以是一個數字段,如:1-15W是錯誤的。 集合
「L」和「W」能夠在日期域中聯合使用,LW表示這個月最後一週的工做日。 di
字符「#」只容許在星期域中出現。這個字符用於指定本月的某某天。例如:「6#3」表示本月第三週的星期五(6表示星期五,3表示第三週)。「2#1」表示本月第一週的星期一。「4#5」表示第五週的星期三。(用在母親節和父親節再合適不過了)
小提示:
周字段的設置,若使用英文字母是不區分大小寫的 MON 與mon相同.
例子列舉: