时间表达式

时间表达式一 什么是时间表达式 cron 计划任务 是任务在约定的时间执行已经计划好的工作

大家好,欢迎来到IT知识分享网。

一、什么是时间表达式

cron(计划任务),是任务在约定的时间执行已经计划好的工作。cron表达式是字符串,以5或6个空格隔开,分为6或7个域,每个域代表一个含义,cron表达式有如下两种:

秒 分 时 日 月 星期 年 秒 分 时 日 月 星期 
  • 1.1 各字段含义
字段 允许值 允许特殊字符
0-59的整数 , – * /
0-59的整数 , – * /
0-23的整数 , – * /
1-31的整数 , – * ? / L W C
1-12的整数或者JAN-DEC , – * /
星期 1-7的整数或者SUN-SAT(1==SUN) , – * ? / L C #
年(可空) 1970~2099 , – * /
  • 1.2 各特殊字符含义
特殊字符 含义 备注
, 列举出枚举值
表示范围
* 表示匹配改域的任意值
? 表示不为该域指定值 只能在日、星期两个域,不能同时在这两个域上指定”?”
/ 表示起始时间开始触发,然后每隔固定时间触发一次
L 表示最后 只能在日、星期两个域
W 表示有效工作日(周一到周五) 只能作用于日域
LW 表示某个月最后一个工作日,即最后一个星期五 只能作用于日域
# 表示每月的第几个周星期几 只能作用于日域
C 表示计划所关联的日期,如5C在日域中表示日历5日后的第一天,1C在星期域中表示星期日后第一天 只能作用于日、星期两个域
二、时间表达式示例
时间表达式 含义
0 0 10,14,16 * * ? 每天10点、14点、16点
0 0 9-17 * * ? 每天9点到17点的整点
0 0 9-12,14,16-17 * * ? 每天9-12点、14点和16-17点
0 0/15 9-17 * * ? 每天9点到17点期间每隔15分钟
* * 9-17 * * ? 每天9点到17点每一秒
0 15 10 * * ? * 每天10点15
0 15 10 * * ? 2019 2019年的每天10点15
0 0 12 ? * 1 或 0 0 12 ? * WED 每周日12点
0 15 10 ? * 6L 或 0 15 10 ? * FRI 没有的最后一个星期五10点15分
0 30 12 L * ? 每个月最后一天的12点30分
0 10 10 LW * ? 2019 2019年每月的最后一个工作日10点10分
0 0 9 ? * 6#3 每月的第三个星期五9点整
三、Java工具生成时间表达式

引入工具cron-util工具包

<dependency> <groupId>com.cronutils</groupId> <artifactId>cron-utils</artifactId> <version>8.1.1</version> </dependency> 

生成时间表达式:

 public static void main(String[] args) { Cron cron = CronBuilder.cron(CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ)) .withYear(always()) .withMonth(always()) .withDoW(questionMark()) .withDoM(on(10)) .withHour(between(9, 17)) .withMinute(every(15)) .withSecond(always()) .instance(); System.out.println(cron.asString()); } --- * */15 9-17 10 * ? * 
参考
  • 时间表达式详解
  • 时间表达式,?解释
  • 时间表达式实例
  • cron-utils

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/122093.html

(0)
上一篇 2025-10-19 12:33
下一篇 2025-10-19 13:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信