cron 表达式

上篇文章提到了 Java 的各种定时任务的实现,很多都使用了 cron 表达式,这里记录几种常见设置方式,方便对照使用。


Cron表达式的格式:秒 分 时 日 月 周 年(可选)。

配置语法


字段名 允许的值 允许的特殊字符
0-59 , - * /
0-59 , - * /
0-23 , - * /
1-31 , - * ? / L W
1-12 or JAN-DEC , - * /
周几 1-7 or SUN-SAT , - * ? / L #
年 (可选字段) empty, 1970-2099 , - * /

通配符使用说明


符号 说明
? 表示不确定的值
, 指定数个值
- 指定一个值的范围
/ 指定一个值的增加幅度。 n/m 表示从 n 开始,每次增加 m
L 用在日表示一个月中的最后一天,用在周表示该月最后一个星期 X
W 指定离给定日期最近的工作日(周一到周五)
# 表示该月第几个周 X。6#3 表示该月第3个周五

常用示例


cron 配置 说明
0 0 12 * * ? 每天12点触发
0 15 10 ? * * 每天10点15分触发
0 15 10 * * ? 每天10点15分触发
0 15 10 * * ? * 每天10点15分触发
0 15 10 * * ? 2014 2014年每天10点15分触发
0 * 14 * * ? 每天下午的 2点到2点59分每分触发
0 0/5 14 * * ? 每天下午的2点到2点59分(整点开始,每隔5分触发)
0 0/5 14,18 * * ? 每天下午的 18点到18点59分(整点开始,每隔5分触发)
0 0-5 14 * * ? 每天下午的 2点到2点05分每分触发
0 10,44 14 ? 3 WED 3月分每周三下午的 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 2014-2025 从2014年到2025年每月最后一周的星期五的10点15分触发
0 15 10 ? * 6#3 每月的第三周的星期五开始触发
0 0 12 1/5 * ? 每月的第一个中午开始每隔5天触发一次
0 11 11 11 11 ? 每年的11月11号 11点11分触发(光棍节)

推荐 cron 表达式在线生成器