cron表达式在线生成工具:http://www.pppet.net/
1.cron表达式说明
corn表达式格式为七个域,如:秒 分 时 日 月 周 年
每一个域之间空格隔开,不指定“年”域时,年域可省略不写,如:秒 分 时 日 月 周
名称 | 是否必要 | 值范围 | 特殊字符 |
秒 | 必要 | 0-59 | , - * / |
分 | 必要 | 0-59 | , - * / |
时 | 必要 | 0-23 | , - * / |
日 | 必要 | 1-31 | , - * ? / L W C |
月 | 必要 | 1-12 或 JAN-DEC | , - * / |
周 | 必要 | 1-7 或 SUN-SAT | , - * ? / L C # |
年 | 不必要 | 空 或 1970-2099 | , - * / |
1.1 JAN-DEC(12个月简写)
Jan(一月)、Feb(二月)、Mar(三月)、Apr(四月)、May(五月)、Jun(六月)、Jul(七月)、Aug(八月)、Sep(九月)、Oct(十月)、Nov(十一月、Dec(十二月)
1.2 SUN-SAT(周日至周六简写)
MON(星期一) 、TUES(星期二)、WED(星期三)、THUR(星期四)、FRI(星期五)、SAT(星期六)、SUN(星期日)
1.3 特殊符合说明:
通用符号:
【1】, x,y表示x和y
【2】- x-y表示x到y
【3】* 表示每TIME
【4】/ x/y表示从x起,每隔y
特殊符号:
“日”域中特殊“?”,“L”,“W”,“C”
【1】? 表示不指定“日”域的值。规则是指定“周”域,则“日”域必须为“?”。反之,指定“日”域,则“周”域必须为“?”。如0 0 12 ? * MON 或 0 0 12 1 * ?
【2】L 2种写法。一,表示月末几天,如2L, 表示月末的2天。二,表示月末倒数第几天,如L-3,表示月末倒数第3天。
【3】W 表示临近某日的工作日,如15W,表示最接近15号的工作日,可能是15号(刚好是工作日)、15号前(刚好周六)或15号后(刚好周日)。
【4】C 表示和Calendar计划关联的值,如1C表示,1日或1日后包括Carlendar的第一天。
【5】LW L和W的组合,只能出现在"日"域中。表示某月最后一个工作日,不一定是周五。
PS:“日域”中,L和W组合为“LW”时,网上有很多种定义,比如:
说法一:LW表示某月的最后一个工作日
说法二:LW某月最后一周的最后一个工作日,即周五
“周”域中有“?”,“L”,“C”,“#”
【1】? 表示不指定“周”域。规则是指定“日”域值,则“周”域值必须为“?”。反之,指定“周”域值,则“日”域值必须为“?”。如0 0 12 1 * ? 或 0 0 12 ? * MON
【2】L 表示某月的最后一个周几,如1L, 表示某月的最后一个周日(1表示周日),7L,表示某月的最后一个周六(7表示周六)。
【3】C 表示和Calendar计划关联的值,如1C表示,周日或周日后包括Carlendar的第一天。
【4】# 只能出现在"周"域中,表示第几个周几,x#y,y表示第几个,x表示周的值,如6#2,表示第2个周五(6表示周五)。
2.Cron 常用表达式
2.1 分钟Corn表达式
用法 | 表达式 |
每天的从 5:00PM至5:59 PM 中的每分钟触发 | 0 * 17 * * ? |
每天的从11:00PM至11:55 PM 中的每五分钟触发 | 0 0/5 23 * * ? |
每天的从 3:00至3:55 PM 和6:00PM至6:55 M 之中的每五分钟触发 | 0 0/5 15,18 * * ? |
每天的从5:00AM至5:05AM中的每分钟触发 | 0 0-5 5 * * ? |
2.2 日Corn表达式
用法 | 表达式 |
每天的3:00AM | 0 0 3 * * ? |
每天的3:00AM(另一种写法) | 0 0 3 ? * * |
每天的 12:00 PM(中午) | 0 0 12 * * ? |
在2005中每天的10:15AM | 0 15 10 * * ? 2005 |
2.3 周、月Corn表达式
用法 | 表达式 |
在每个周一,二,三和周四的 10:15 AM | 0 15 10 ? * MON-FRI |
每月15号的 10:15 AM | 0 15 10 15 * ? |
每月最后一天的 10:15AM | 0 15 10 L * ? |
每月最后一个周五的10:15AM | 0 15 10 ? * 6L |
在2002,2003,2004,和 2005 年中的每月最后一个周五的 10:15 AM | 0 15 10 ? * 6L 2002-2005 |
每月第三个周五的10:15AM | 0 15 10 ? * 6#3 |
每月从第一天算起每五天的12:00PM(中午) | 0 0 12 1/5 * ? |
每一个11月11号的 11:11AM | 0 11 11 11 11 ? |
三月份每个周三的 2:10 PM 和2:44PM | 0 10,44 14 ? 3 WED |