Cron表达式包含6个必填字段和一个可选字段,中间用空格分隔开。字段描述如下
字段 允许值 允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / L W
月份 1-12 或者 JAN-DEC , - * /
星期 1-7 或者 SUN-SAT , - * ? / L #
年(可选) 留空, 1970-2099 , - * /
“*”用来匹配所有的值,例如,“*”在分这个字段表示“每一分钟”,
“?”用来匹配日期字段和星期字段,通常用于指定不包含特殊的值,
“-”用来匹配连续的值,例如,“10-12”在小时字段中表示,10,11,12小时,
“,”用来匹配额外的值,例如,在星期这个字段中“MON,WED,FRI” 表示星期一,三,五,
“/”用来表示特定的增量,例如,在秒这个字段中“0/15”表示,0,15,30和45。“5/15”表示5,20,35,和50.当“*”出现在“/”时,等价于0/?,0是这个值的起点。
“L”可用在日期和星期字段当中,是单词“last”的简写,但是,他们在不同的字段中也有不同的意思,例如,在日期这个字段中,“L”表示月中的最后一天,一月的31号,平年2月的28号。如果是单独用在星期这个字段中,仅仅简单的表示“7”或者“SAT”,如果用在其他的值后面,则又有其他的意思,例如,在星期字段中,“6L”表示一个月的最后一个星期五。也可以表示一组值,例如,“L-3”表示每一个月的最后三天,当用“L”这个选项时,最好别指定特殊的一组值,或是范围。
“W”可用在日期字段中,被用来表示给定日期的最近工作日,例如“15W”表示,表示15号前后最近的工作日,注意是当前月,例如“1W”,假设1号是星期6,则表示当月的3日,而不是前一月的最后一天。
“L”和“W”也可以结合起来用在日期字段中,“LW”就表示一个月的最后一个工作日,
“#”可以用在星期字段中,例如“6#3”一个月中的第三个星期五,“2#1”等价于一个月当中的第一个星期一,“4#5”等价于月中的第四个星期三,注意“#”只能用于周字段中,如果是单独写“#5”,将不会触发,在周字段中,“#”只能用一次,“3#1,6#3”是不合法的。 周字段中的的合法字符是不区分大小写的。(SUN,sun)
ps:掌握了上面的用法,一般的场景应该够了!