Spring--quartz中的cronExpression表达式解释

一个cron表达式有6个或7个有空格分隔的时间元素。

按顺序依次为:

秒 分 小时 日期 月份 星期
秒 分 小时 日期 月份 星期 年

其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4) (/4表示每隔4小时),一个列表(1,3,5),通配符。由于“月份中的日期”和“星期中的日期”这两个元素互斥的,必须要对其中一个设置”?”。

字段 允许值 允许的特殊字符

0-59            , - * /
分       0-59            , - * /
时       0-23            , - * /
日       1-31            , - * / L W ?
月       1-12(JAN-DEC)   , - * /
周       1-7(SUN-SAT)    , - * / L ? #1970-2099(留空)  , - * /

如上面的表达式所示:

  • * ”字符被用来指定所有的值。如:”“在分钟的字段域里表示“每分钟”。

  • “ - ”字符被用来指定一个范围。如:“10-12”在小时域意味着“10点、11点、12点”。

  • “ , ”字符被用来指定另外的值,枚举各值。如:“MON,WED,FRI”在星期域里表示”星期一、星期三、星期五”。

  • “ ? ”字符只在日期域和星期域中使用。它被用来指定“非明确的值”。当你需要通过在这两个域中的一个来指定一些东西的时候,它是有用的。看下面的例子你就会明白。

  • “ / ”字符用来指定数值的增量。如:在子表达式(分钟)里的“0/15”表示从第0分钟开始,每15分钟;在子表达式(分钟)里的“*/15”表示从程序加载成功的那刻开始,每15分钟;在子表达式(分钟)里的“3/20”表示从第3分钟开始,每20分钟(它和“3,23,43”的含义一样)。

  • “ L ”字符指定在月或者星期中的某天(最后一天)。即“Last
    ”的缩写。但是在星期和月中“L”表示不同的意思,如:在月子段中“L”指月份的最后一天-1月31日,2月28日,如果在星期字段中则简单的表示为“7”或者“SAT”。如果在星期字段中在某个value值得后面,则表示“某月的最后一个星期value”,如“6L”表示某月的最后一个星期五。

  • “ W ”字符只能用在月份字段中,该字段指定了离指定日期最近的那个星期日。

  • “ # ”字符只能用在星期字段,该字段指定了第几个星期value在某月中

常用示例:

0 0 10,14,16 * * ?      每天上午10:00,下午2:00,4:00

0 * 10,14,16 * * ?      每天上午10:00到10:59,下午2:00到2:59,4:00到4:59每分钟执行一次

0 0/30 9-17 * * ?       9:00到17:59时间内每半小时(整点开始)

0 0 12 ? * WED          表示每个星期三中午12:00

0 0 12 ? * 4            表示每个星期三中午12:00

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 * * ?            在每天下午2:00到下午2:59期间的每分钟触发

0 0/5 14 * * ?          在每天下午2:00到下午2:59期间的每5分钟触发(最后一次是2:55)

0 0/5 14,18 * * ?       在每天下午2:00到2:55期间和下午6:00到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触发 

0 0/5 14 * * ?          每天下午的 2点到2点59分(整点开始,每隔5分触发)   

0 0/5 14,18 * * ?       每天下午的 2:00到2:59分、18:00到18:59分(整点开始,每隔5分触发)    

0 0-5 14 * * ?          每天下午的 2:00到2:05分每分触发 

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分触发   

0 0 12 1/5 * ?          每月的第一个中午开始每隔5天触发一次

0 0 23-7/2,8 * * *      晚上11:00到早上7:59之间每两个小时,还有早上8:00

0 0 11 4 * 1-3          每个月的4号和每个礼拜的周天到周二的早上11:00 

你可能感兴趣的:(JAVA)