Quartz的cron表达式写法详解


   用过quartz才发现如此的好用,由其是使用cron来表达时间,简直不要太赞。不过他的cron表达式和crontab的cron表达式还是稍有不同的。


格式

* * * * * ? *
秒 分 时 天 月 周 年

取值范围

  1. "日"和"周几"不能同时为*和数字,也不能同时为?,否则会报错
  2. 年若为*,可以被省略
  3. Cron表达式的格式:秒 分 时 日 月 周 年(可选)
字段名 允许的值 允许的特殊字符
0-59 , - * /
0-59 , - * /
小时 0-23 , - * /
1-31 , - * ? / L W C
1-12 or JAN-DEC , - * /
周几 1-7 or SUN-SAT , - * ? / L C #
年(可选字段)empty 1970-2099 , - * /

特殊字符解释

*:每一(秒/分…)执行
x/y:每隔x执行,从y开始
x,y:在第z、y执行(周一周二执行:* * * ? * MON,TUE *)
x-y:周期从x到y执行(每年6-8月执行:* * * * 6-8 ? *)
L:这个月的最后一天(* * * L * ? *)
LW:这个月的最后一个工作日(* * * LW * ? *)
nL:这个月的最后一个星期n(* * * nL * ? *)
L-n:在本月底前n天(* * * L-n * ? *)
x#y:在这个月的第y个星期x(* * * ? * 5#2 *)
nW:最近的工作日(周一至周五)至本月n日(* * * nW * ? *)

注意

一周从星期天开始计数,周天为1,周六为7

参考文档

  1. quartz时间表达式中 * 和 ? 的意思似乎差不多?
  2. pigx微服务快速开发框架项目

你可能感兴趣的:(Java)