cron时间表达式简介

一、表达式格式

  秒数 分钟 小时 日期 月份 星期 年份(只此可为空)

  cron表达式是由空格分隔的6或7个字段组成的字符串。

二、字段取值范围

  字段可以包含任何允许的值,以及该字段允许的特殊字符的各种组合。字段如下:

字段名称强制性允许的值允许的特殊字符
0-59, - * /
分钟0-59, - * /
小时0-23, - * /
1-31, - *?/ LW
1-12或JAN-DEC, - * /
星期1-7或SUN-SAT, - *?/ L#
没有空,1970-2099, - * /

 

 

 

 

 

 

 

 

 

 

注意

1、星期里,1表示的是星期天,2表示的是星期一,以此类推,7表示的是星期六

2、?只存在于某天或某星期中,且不能同时存在(还不支持同时指定某天和星期)

3、'L'和'W'字符也可以在日期字段中组合以产生'LW',这转换为“最后一个工作日”

4、法定字符以及月份和星期的名称不区分大小写,如MON 与mon相同

5、一定要注意设置时间zone

三、特殊字符

字符含义使用范围描述举例
*所有值所有字段用于选择字段中的所有值分钟字段中的 * 表示每分钟
-用于指定范围所有字段指定当前时间段位置上的一个时间范围小时字段中的10-12表示10到12内的小时数,即小时10,11和12这三个值
多个指定的值所有字段多个指定的值以逗号隔开星期几字段中的MON,WED,FRI表示 星期一,星期三和星期五
/指定增量所有字段左边是开始触发时间,右边是每隔固定时间触发一次事件秒字段中的5/15表示 秒 5,20,35和50;也可直接/20,相当于在'/'之前有'0',即表示0,20,40
?没有特定值,不关心该字段的值日,星期需要在允许该字符的两个字段之一中指定某些内容而在另一个字段中则不需要时非常有用某月的某个特定日期(例如,第10天)触发,但不关心恰好在一周的哪一天,星期几字段中可放置?
Llast,允许的两个字段的每一个中具有不同的含义日,星期日期字段中的值L表示月份的最后一天,在星期几字段中单独使用,则仅表示7或SAT还可以指定从该月的最后一天开始的偏移量,例如L-3,这意味着该月的倒数第三天
Wwork,用于指定最接近给定日期的工作日(周一至周五)前后和当前最接近工作日的那天,如当天是工作日则当天触发,且不会跳过一个月的边界指定15W作为日期字段的值,则含义为:最接近该月的15日的工作日;若指定“1W”作为日期的值,并且第1个是星期六,则将在当月的3号触发
#指定当月的第几个星期几星期指定当月的第几个星期几星期几字段中的6#3的值表示该月的第三个星期五(第6天=星期五,#3=该月份的第3个星期五)

四、示例

"0 0 12 * * ?" 每天12:00触发事件
"0 15 10 ? * *" 每天10:15触发事件
"0 15 10 * * ?" 每天10:15触发事件
"0 15 10 * * ? *" 每天10:15触发事件
"0 15 10 * * ? 2005" 2005年的每天10:15触发事件
"0 * 14 * * ?" 每天14点开始触发,每分钟触发一次,14:59分结束
"0 0/5 14 * * ?" 每天14点开始触发到14:59分结束的每5分钟触发一次事件
"0 0/5 14,18 * * ?" 每天14点开始到14:59期间和18点到18:59期间的每5分钟触发一次事件
"0 0-5 14 * * ?" 每天14点到14:05期间的每1分钟触发一次事件
"0 10,44 14 ? 3 WED" 每年3月的星期三的14:10和14:44触发一次事件
"0 15 10 ? * MON-FRI" 周一至周五的10:15触发一次事件
"0 15 10 15 * ?" 每月15日10:15触发一次事件
"0 15 10 L * ?" 每月最后一日的10:15触发一次事件
"0 15 10 ? * 6L" 每月的最后一个星期五10:15触发一次事件
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五10:15触发一次事件
"0 15 10 ? * 6#3" 每月的第三个星期五10:15触发一次事件

参考:CronTrigger Tutorial

 

 

转载于:https://www.cnblogs.com/doclove/p/10240155.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值