一个Corn 表达式至少有6个(也可能7个)用空格分隔的时间元素。这些时间元素的顺序依次为: 1,秒(值 为 :0-59)2,分钟(值为: 0-59) 3,小时(值为:0-23)4,天(值为:0-31 ,但是要考虑实际每个月的天数) 5,月(值为:0-11 ),6,星期(值为:1-7 或者SUN ,MON,TUE,WED,THU,FRI,SAT 其中1=SUN) 7,年份。
其中每个时间元素值 可以是一个具体的值(如6),也可以是一个连续的区间(如1-7),也可以是一个时间间隔(如在秒的时间元素中用“2/10”这个值,就是表示 在第“2,12,22,32,42,52” 秒触发 ),也可以是这个值列表(如:(1,3,5)),也可以是通配符。由于“月份中的日期”和“星期中的日期”这个两个元素互斥的, 即第5,和第6必须有一个设置为“?”。
有些子表达式能包含一些范围或者列表例如:子表达式(天(星期))可以为 “MON-FRI”," MON ,WED,FRI","MON-WED,SAT"。
“*” 字符代表所有可能的值,因此 “*” 在子表达式(月)力表示每个月的含义。
“/” 字符用来指定数值的增量,例如: 在子表达式(分钟)里的“0/15” 表示从第0分钟开始,每15分钟执行一次。
“?” 字符仅被用于“天”和“星期”两个表达式中,表示不指定值 。当这个两表达式中其中一个被指定值之后,为了避免冲突,需要将另外的一个表达式的值设置为“?”。
”L“ 字符仅被用于”天“和”星期“两个字表达式中,它是单词”last“的缩写,其中在”天”的表达式中的意思是:一个月中的最后一天;在“星期“的表达式中表示:一个星期的最后一天,也就是”SAT“.
“L”字符:用在天表示一个月中的最后一天,用在周表示该月最后一个星期X
如果在”L“ 前面有具体的内容,它就表示其他的含义。
例如: ”6L“,用在天中,表示这个月的倒数第6天,"FRIL" 表示这个月的最后一个星期五。
”W“: 表示为最近工作日,如”15W“放在”月“字段上表示为”本月15号最近的工作日“。
”#“:是用来指定”的“ 每月第n个工作日,例如 在”星期“这个表达式中,设置的值为”6#3“ 或者”FRI#3“则表示 ”每月的第3个星期5“。
序号 说明 是否必填 允许填写的值 允许的通配符
1 秒 是 0-59 , - * /
2 分 是 0-59 , - * /
3 小时 是 0-23 , - * /
4 日 是 1-31 , - * ? / L W
5 月 是 1-12 or JAN-DEC , - * /
6 周 是 1-7 or SUN-SAT , - * ? / L #
7 年 否 empty 或 1970-2099 , - * /