Cron表达式有6或7个时间元素组成(第七个可选),元素之间用空格分隔。从左往右,7个元素的含义如表10.4所示。
位置 | 元素含义 | 取值范围 | 可包含的特殊字符 |
---|---|---|---|
第1个 | 秒 | 0 ~ 59 | , - * / |
第2个 | 分钟 | 0 ~ 59 | , - * / |
第3个 | 小时 | 0 ~ 23 | , - * / |
第4个 | 月份中的第几天 | 1 ~ 31 | , - * / ? L |
第5个 | 月份 | 1~12或JAN ~ DEC | , - * / |
第6个 | 星期中的第几天(即星期几) | 1 ~ 7或SUN ~ SA (1代表星期天…、7代表星期六) | , - * / ? L # |
第7个 | 年份 | 1970~2099 | , - * / |
其中,特殊字符的含义如下表
特殊字符 | 含义 |
---|---|
, | 表示列出枚举值。例如,在“分钟”元素使用“5,20”,表示在“第5分钟、第20分钟”各触发一次。 |
- | 表示范围,例如,在“分钟”元素使用“5-20”,表示“从第5分钟到第20分钟”内的每分钟都触发一次。 |
* | 表示匹配该元素的所有值。例如,在“分钟”元素使用“*”,表示每分钟都会触发一次。 |
/ | 如“A/B”:表示A时刻开始触发,然后每隔B时间都触发一次。 例如,在“分钟”元素使用“5/20”,表示第5分钟触发一次, 然后每个20分钟(如第25分钟、第45分钟等)都分别触发一次。 |
? | 只能用于“月份中的第几天”和“星期几”两个元素,表示不指定值。 当这两个元素其中之一被指定了值之后,为了避免冲突,需要将另外一个元素的值设置为“?” |
L | “Last”的简称,表示最后。只能用于“月份中的第几天”和“星期几”两个元素。 需要注意的是,在西方国家,“星期”的最后一天是“星期六SAT(或用数字7表示)”。 例如,“0 0 8 ? * L”表示“每个月的每周六8:00”。 并且,当用于“星期几”时,“L”前面可以加一个数字(假定数字是n),表示“月份中的最后一个星期n”, 例如“0 0 0 ? * 1L”中“1L”表示“当月的最后一个星期天”(1指星期天)。 L:自适当当月最后一天 |
# | 只能用于 “星期几”一个元素,表示当月的第几个星期几。 例如,“4#2”表示当月第2个星期三(4指星期三,2指第2个) |
Cron表达式示例
秒 分 时 天 月 天 年
Cron表达式 | 含义 |
---|---|
0 0 10,14,16 * * ? | 每天的10点、14点、16点 |
0 0/30 9-17 * * ? | 朝九晚五内的每半个小时 |
0 0 12 ? * WED | 每个星期三的12点 |
0 0 12 * * ? | 每天中午12点 |
0 15 10 ? * * | 每天上午10:15 |
0 15 10 * * ? | 每天上午10:15 |
0 15 10 * * ? * | 每天上午10:15 |
0 15 10 * * ? | 2015 2015年的每天10:15 |
0 * 14 * * ? | 每天14:00至14:59期间的每1分钟 |
0 0/5 14 * * ? | 每天14:00至14:55期间的每5分钟 |
0 0/5 14,18 * * ? | 每天14:00至18:55期间,和18:00至18:55期间的每5分钟 |
0 0-5 14 * * ? | 每天14:00至14:05期间的每1分钟 |
0 10,44 14 ? 3 WED | 每年三月的所有星期三的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 |