cron表达式可以是6位或7位,以下是七位字符的含义

字段

允许值

允许的特殊字符

秒(Seconds)

0~59的整数

, - * / 四个字符

分(Minutes

0~59的整数

, - * / 四个字符

小时(Hours

0~23的整数

, - * / 四个字符

日期(DayofMonth

1~31的整数(根据月份变化)

,- * ? / L W C 八个字符

月份(Month

1~12的整数或者 JAN-DEC

, - * / 四个字符

星期(DayofWeek

1~7的整数或者 SUN-SAT (1=SUN)

, - * ? / L C # 八个字符

年(可选,留空)(Year

1970~2099

, - * / 四个字符

*

该符号表示所有,如给秒设置*就是0到59秒都会执行

你可以把这个符合看为,比如a,b,c,就是a或b或c

如给分设置为3,20,45,那么他就会在3分钟,20分钟,45分钟时执行

只有一位数也是一样的

-

该符合表示范围,如给秒设置20-22,那么20秒,21秒,22秒都会执行

/

这是一个很容易理解的符号,我们可以把它转化为另一个表达式

如有:a/b,我们可以看成:n*b+a(其中n是在任意正整数,和不能超过规定范围)

比如给秒设为:2/12 ,也就是n*12+2,那么它的执行规律是这样的:2,14,26,38,50(不超过秒的最大值59)

#

这个符号只能用在星期,它表示一个月中的第几个星期几(1表示星期日,7表示星期六)

如给星期设置为2#3(注意此时日期必须为),他就是第三个星期一

L

该符合表示最后,只能用在日期和星期(也就是只能用在天数上)

如果是用在日期上,则在一个月的最后一天执行

如果用在星期上,则在周六执行

W

改符号只能在日期中使用,并且只能配合数字使用,如nW(其中n表示当前月的日期,超出当前月天数会报错)

nW用来寻找指定日期最近的工作日

如3W:

如果当前月份的3日是星期六,则在2日(星期五)执行

若是星期日,则在4日(星期一)执行

周一至周五,则直接执行

不跨月

如1W:

若当前月份的1日是星期六,则在3日(星期一)执行

对于月末也是如此的

LW

用在日期中,表示当月最后一个工作日

其实在表达式中日期和星期是重复的,但又是两个不同的概念,为了区分这两个冲突的概念,所以有了

因为冲突,所以在表达式中不能够同时设置日期和星期,它们两个必须有一个是

也就是说在设置日期时星期为,在设置星期时日期为

C