内容摘自以下网址。共同学习
https://www.cnblogs.com/GarfieldTom/p/3746290.html
举例:
每隔5秒执行一次:*/5 * * * * ?
每隔1分钟执行一次:0 */1 * * * ?
每天23点执行一次:0 0 23 * * ?
每天凌晨1点执行一次:0 0 1 * * ?
每月1号凌晨1点执行一次:0 0 1 1 * ?
每月最后一天23点执行一次:0 0 23 L * ?
每周星期天凌晨1点实行一次:0 0 1 ? * L
每星期三下午12:00 执行一次:0 0 12 ? * WED
在26分、29分、33分执行一次:0 26,29,33 * * * ?
每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
每天11:01,11:02,11:03; 12:01,12:02,12:03分执行任务:0 1,2,3 11,12 * * ?
时间格式: <! -- s m h d m w(?) y(?) -->,分别对应:
- Seconds 秒 可以用数字0-59 表示
- Minutes 分 可以用数字0-59 表示
- Hours 小时 可以用数字0-23表示
- Day-of-Month 日 可以用数字1-31 中的任一一个值,但要注意一些特别的月份
- Month 月 可以用0-11 或用字符串 “JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV and DEC” 表示
- Day-of-Week 周 可以用数字1-7表示(1 = 星期日)或用字符口串“SUN, MON, TUE, WED, THU, FRI and SAT”表示
- Year (可选字段) 年
“ * ”: 代表整个时间段,表示对应时间域的每一个时刻,例如,*在分钟字段时,表示“每分钟”
“ / ”:指定一个值的增加幅度。n/m表示从n开始,每次增加m。
如:在分钟字段中使用0/15,则表示为0,15,30 和 45 秒,而5/15 在分钟字段中表示5,20,35,50,你也可以使用*/y,它等同于0/y;表示为“每”,如 “0/15” 表示每隔15分钟执行一次,“0”表示为从“0”分开始, “3/20”表示表示每隔20分钟执行一次,“3”表示从第3分钟开始执行
“ ? ”:表示不确定的值,? 号只能用在日和周域上,但是不能在这两个域上同时使用。每月的某一天,或第周的某一天,
假如你为这两域的其中一个指定了值,那就必须在另一个字值上放一个 ?
-(横杠):指定一个值的范围,如在小时字段中使用“10-12”,则表示从10到12点,即10,11,12
,(逗号):指定数个值,如在星期字段中使用“MON,WED,FRI”,则表示星期一,星期三和星期五
“ L ”:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X,如“6L”表示“每月的最后一个星期五”
“ W ”:指定离给定日期最近的工作日(周一到周五),如“15W”放在每月(day-of-month)字段上表示为“到本月15日最近的工作日”
“ # ”:表示该月第几个周X。6#3 or FRI#3 表示每月第3个周五
1)Cron表达式的格式:秒 分 时 日 月 周 年(可选)。
字段名 | 允许的值 | 允许的特殊字符 |
秒 | 0-59 | , - * / |
分 | 0-59 | , - * / |
小时 | 0-23 | , - * / |
日 | 1-31 | , - * ? / L W C |
月 | 1-12 or JAN-DEC | , - * / |
周几 | 1-7 or SUN-SAT | , - * ? / L C # |
年 (可选字段) | empty, 1970-2099 | , - * / |
备注:月份和星期的名称是不区分大小写的。FRI 和 fri 是一样的