字段 | 允许值 | 特殊字符 |
秒 | 0-59 | – * / , |
分 | 0-59 | – * / , |
时 | 0-23 | – * / , |
日期 | 1-31 | – * ? / , L W C |
月份 | 1-12或者 JAN-DEC | – * / , |
星期 | 1-7 或者 SUN-SAT | – * ? / , L C # |
年 | (可选) 留空, 1970-2099 | – * / , |
-
格式:
秒 分 时 日 月 星期 [年]
年是可选择部分;
-
特殊字符说明:
·日期与星期不能同时设置,当设置了日期时,星期应该设为’?’,同样当设置了星期后日期应该设置成’?’;
·特殊字符‘-’用于设置范围如:2002-2005 标示2002年到2005年;
·特殊字符‘*’表示所有,如果日期位被设置成‘*’,这标示每天;
·特殊字符‘/’表示后面跟的数字表示周期,如:时设置成‘23-7/2’表示晚上11点到早上8点每两个小时;
·特殊字符‘,’用于列举所有的选项;
·特殊字符‘L’表示最后一个,可用在日期和星期上,如星期的数值后面加上‘L’,‘6L’最后一个星期5;
·特殊字符‘W’表示工作日,只能出现在DayofMonth域,系统将在离指定日期的最近的有效工作日触发事件。例如:在DayofMonth使用5W,如果5日是星期六,则将在最近的工作日:星期五,即4日触发。如果5日是星期天,则在6日(周一)触发;如果5日在星期一到星期五中的一天,则就在5日触发。另外一点,W的最近寻找不会跨过月份;
·LW:这两个字符可以连用,表示在某个月最后一个工作日;
·特殊字符‘C’表示日历,用的少不做解释;
·特殊字符‘#’表示表示每月的第几个星期,只能用在星期上,如:‘#2’表示第二;
-
例子:
Cron表达式 | 含义 |
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触发 |
0 15 10 L * ? 2002-2005 | 2002年至2005年的每月的最后一天上午10:15触发 |
0 15 10 LW * ? 2002-2005 | 2002年至2005年的每月的最后一个工作日上午10:15触发 |
0 15 10 5W * ? 2002-2005 | 2002年至2005年的每月的离5号最近的工作日上午10:15触发,如果5号是工作日则在5号触发,如果5号是周六,则在4号触发,如果5号是周日则在6号触发 |