Quartz Cron表达式
官方英文介绍地址:http://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/crontrigger.html
由7段构成:秒 分 时 日 月 星期 年(可选)
图例:
格式:
字段名称 |
强制性 |
允许值 |
允许的特殊字符 |
秒 |
是 |
0-59 |
, - * / |
分 |
是 |
0-59 |
, - * / |
时 |
是 |
0-23 |
, - * / |
日 |
是 |
1-31 |
, - *?/ LW |
月 |
是 |
1-12或JAN-DEC |
, - * / |
星期 |
是 |
1-7或SUN-SAT |
, - *?/ L# |
年 |
没有 |
空,1970-2099 |
, - * / |
所以cron表达式可以这样简单:* * * * ?*
或更复杂,如:0/5 14,18,339,52 *?JAN,MAR,SEP MON-FRI 2002-2010
- :表示范围 MON-WED表示星期一到星期三
, :表示列举 MON,WEB表示星期一和星期三
* :表示“每”,每月,每天,每周,每年等
/ :表示增量:0/15(处于分钟段里面) 每15分钟,在0分以后开始,3/20 每20分钟,从3分钟以后开始
? :只能出现在日,星期段里面,表示不指定具体的值
L :只能出现在日,星期段里面,是Last的缩写,一个月的最后一天,一个星期的最后一天(星期六)
W :表示工作日,距离给定值最近的工作日
# :表示一个月的第几个星期几,例如:"6#3"表示每个月的第三个星期五(1=SUN...6=FRI,7=SAT)
注意:
1、
‘?’的用法,指定星期和日的值不完整(您必须在其中一个字段中使用'?'字符)。如:每月的1号的每小时的31分钟,正确的表达式是:* 31 * 1 * ?,而不能是:* 31 * 1 * *,因为这样代表每周的任意一天。
2、
美国人星期从星期日开始,所以星期中数字1,代表是星期天。7则代表星期六。
3、
一个星期中七天的英文表示为:1=SUN,2=MON,3=TUE,4=WED,5=THU,6=FRI,7=SAT
1-12月依次是JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
官方示例
表达式 |
含义 |
0 0 12 * * ? |
每天中午12点触发 |
0 15 10 ? * * |
每天上午10:15触发 |
0 15 10 * * ? |
每天上午10:15触发 |
0 15 10 * * ? * |
每天上午10:15触发 |
0 15 10 * * ? 2005 |
2005年的每天上午10:15触发 |
0 * 14 * * ? |
在每天下午2点到下午2:59期间的每1分钟触发 |
0 0/5 14 * * ? |
在每天下午2点到下午2:55期间的每5分钟触发 |
0 0/5 14,18 * * ? |
在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 |
0 0-5 14 * * ? |
在每天下午2点到下午2:05期间的每1分钟触发 |
0 10,44 14 ? 3 WED |
每年三月的星期三的下午2:10和2:44触发 |
0 15 10 ? * MON-FRI |
周一至周五的上午10:15触发 |
0 15 10 15 * ? |
每月15日上午10:15触发 |
0 15 10 L * ? |
每月最后一日的上午10:15触发 |
0 15 10 L-2 * ? |
在每个月的第二天到最后一天的上午10:15发生触发 |
0 15 10 ? * 6L |
每月的最后一个星期五上午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触发 |
0 0 12 1/5 * ? |
每月下午12点(中午),每月第一天触发。 |
0 11 11 11 11 ? |
每11月11日上午11时11分触发 |
网上的一些例子:
"0 0 12 * * ?" 每天中午12点触发
"0 15 10 ? * *" 每天上午10:15触发
"0 15 10 * * ?" 每天上午10:15触发
"0 15 10 * * ? *" 每天上午10:15触发
"0 15 10 * * ? 2005" 2005年的每天上午10:15触发
"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2: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触发
在线生成:
在线Cron表达式生成器 - http://www.pppet.net/
注:如果有错误欢迎在评论区指出,一起学习进步,非常感谢。