表达式格式:秒 分 小时 日期 月份 星期 年
Field Name Allowed Values Allowed Special Characters
Seconds 0-59 , - * /
Minutes 0-59 , - * /
Hours 0-23 , - * /
Day-of-month 1-31 , - * ? / L W
Month 1-12 or JAN-DEC , - * /
Day-of-Week 1-7 or SUN-SAT , - * ? / L #
Year (Optional) empty, 1970-2099 , - * /
* :所有可能的值
? :仅被用于天(月)和天(星期)两个子表达式,它被用来指定“不特定的价值”
- :指定范围如:“10 - 12”在小时域意味着“小时10、11、12点”
, :
/ :数值的增量
例如:在子表达式(分钟)里的“0/15”表示从第0分钟开始,每15分钟
在子表达式(分钟)里的“3/20”表示从第3分钟开始,每20分钟(它和“3,23,43”)的含义一样
L :仅被用于天(月)和天(星期)两个子表达式,它是单词“last”的缩写
但是它在两个子表达式里的含义是不同的。
在天(月)子表达式中,“L”表示一个月的最后一天
在天(星期)自表达式中,“L”表示一个星期的最后一天,也就是SAT
如果在“L”前有具体的内容,它就具有其他的含义了
例如:“6L”表示这个月的倒数第6天,“FRIL”表示这个月的最一个星期五
W :
# :
The '*' character is used to specify all values. For example, "*" in the minute field means "every minute".
The '?' character is allowed for the day-of-month and day-of-week fields. It is used to specify 'no specific value'. This is useful when you need to specify something in one of the two fields, but not the other.
The '-' character is used to specify ranges For example "10-12" in the hour field means "the hours 10, 11 and 12".
The ',' character is used to specify additional values. For example "MON,WED,FRI" in the day-of-week field means "the days Monday, Wednesday, and Friday".
The '/' character is used to specify increments. For example "0/15" in the seconds field means "the seconds 0, 15, 30, and 45". And "5/15" in the seconds field means "the seconds 5, 20, 35, and 50". Specifying '*' before the '/' is equivalent to specifying 0 is the value to start with. Essentially, for each field in the expression, there is a set of numbers that can be turned on or off. For seconds and minutes, the numbers range from 0 to 59. For hours 0 to 23, for days of the month 0 to 31, and for months 1 to 12. The "/" character simply helps you turn on every "nth" value in the given set. Thus "7/6" in the month field only turns on month "7", it does NOT mean every 6th month, please note that subtlety.
The 'L' character is allowed for the day-of-month and day-of-week fields. This character is short-hand for "last", but it has different meaning in each of the two fields. For example, the value "L" in the day-of-month field means "the last day of the month" - day 31 for January, day 28 for February on non-leap years. If used in the day-of-week field by itself, it simply means "7" or "SAT". But if used in the day-of-week field after another value, it means "the last xxx day of the month" - for example "6L" means "the last friday of the month". When using the 'L' option, it is important not to specify lists, or ranges of values, as you'll get confusing results.
The 'W' character is allowed for the day-of-month field. This character is used to specify the weekday (Monday-Friday) nearest the given day. As an example, if you were to specify "15W" as the value for the day-of-month field, the meaning is: "the nearest weekday to the 15th of the month". So if the 15th is a Saturday, the trigger will fire on Friday the 14th. If the 15th is a Sunday, the trigger will fire on Monday the 16th. If the 15th is a Tuesday, then it will fire on Tuesday the 15th. However if you specify "1W" as the value for day-of-month, and the 1st is a Saturday, the trigger will fire on Monday the 3rd, as it will not 'jump' over the boundary of a month's days. The 'W' character can only be specified when the day-of-month is a single day, not a range or list of days.
The 'L' and 'W' characters can also be combined for the day-of-month expression to yield 'LW', which translates to "last weekday of the month".
The '#' character is allowed for the day-of-week field. This character is used to specify "the nth" XXX day of the month. For example, the value of "6#3" in the day-of-week field means the third Friday of the month (day 6 = Friday and "#3" = the 3rd one in the month). Other examples: "2#1" = the first Monday of the month and "4#5" = the fifth Wednesday of the month. Note that if you specify "#5" and there is not 5 of the given day-of-week in the month, then no firing will occur that month. If the '#' character is used, there can only be one expression in the day-of-week field ("3#1,6#3" is not valid, since there are two expressions).
示例:
"0 0 12 * * ?" 每天中午12点触发
"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触发
分享到:
相关推荐
标题中的“Spring Quartz 表达式在线...总的来说,了解和使用Spring Quartz表达式在线生成器,不仅可以提升开发效率,还能帮助理解定时任务调度的底层机制,对于任何需要处理周期性任务的Java开发者来说都是一大助力。
Java中的Cron表达式解析通常是通过Spring框架的`org.springframework.scheduling.support.CronSequenceGenerator`类或者第三方库如Quartz的`org.quartz.CronExpression`来实现。 首先,让我们理解Cron表达式的格式...
cmd中运行 ”javar -jar 文件名 “ ,生成可视化窗口,方便 生成和解析Cron;从此怕忘记,再也不求人。
这些库可能提供了将Cron表达式解析为JavaScript Date对象的方法,从而在客户端实现定时任务。例如,`js Quartz`库可能会提供API来解析和验证Cron表达式,并根据表达式创建定时器。 **"使用说明.txt"可能包含的内容*...
cronexpbuilder3.0.jar ...Quartz 的Cron任务调度表达式一般人很难理解,在Googole上查询也没有发现类似的代码,所以发了一个对Quartz Cron 表达式的可视化双向解析和生成的一个java的GUI程序,供使用Quartz的程序员使用。
在Quartz中,表达式用于定义任务执行的时间规律,通常采用Cron表达式的形式。这种表达式由7个字段组成,分别对应秒、分、小时、日、月、周几和年份(可选),每个字段都可以包含特定的值、范围、列表或特殊字符。 1...
在压缩包文件"quartz表达式"中,可能包含以下内容: 1. 源代码:生成器的实现代码,可能使用Java或其他语言编写,展示了如何解析用户输入并转换为Cron表达式。 2. 示例:各种Cron表达式的示例,帮助用户理解每种...
Quartz.NET是一个功能丰富的作业调度框架,支持Cron表达式,而NCrontab则是一个轻量级的库,专为Cron表达式解析设计。 1. **Quartz.NET使用**: - 首先,你需要在项目中引入Quartz.NET库。 - 创建一个CronTrigger...
标题提到的“quartz表达式生成工具”是为了帮助开发者更方便地创建和管理Quartz作业(jobs)的执行时间,即cron表达式。在Java应用中,通过cron表达式,我们可以精确地设置任务在何时运行,比如每天的特定时间或者每...
同时,插件可能还具备了对表达式的有效性验证,确保生成的表达式能够在Quartz中正确解析和执行。 4. 复制和导出:用户可以方便地复制生成的表达式,或者将配置保存为文件,以便在其他地方使用。 5. 帮助文档:可能...
C# Cron表达式解析在.NET开发中是一种常见且重要的任务,尤其在自动化任务调度和计划程序的场景下。Cron表达式源于Unix操作系统,用于定义周期性任务的执行时间。在C#中,通过理解并解析Cron表达式,开发者可以创建...
初学之家(http://www.g2room.com)Cron表达式在线生成器,可方便快捷的生成quartz的cron表达式,及对cron表达式进行解析,提供把Quartz的cron表达式解析执行,展示前10次执行时间。
【标题】:Cron表达式解析 - 中英文对照 Cron表达式是Unix/Linux系统中的定时任务调度器Cron所使用的语法,也被广泛应用于Java世界,例如Quartz、Spring等框架。它允许用户以字符串的形式定义任务的执行时间,如...
1、Cron表达式解析(比如Quartz的Cron表达式),计算下一次触发时间; 2、经常使用的时间相关的操作工具类,比如时间格式化,字符串、Date、localDate、LocalDateTime类型间的转换等
Quartz 的Cron任务调度表达式一般人很难理解,在Googole上查询也没有发现类似的代码,所以开发了一个对Quartz Cron 表达式的可视化双向解析和生成的一个java的GUI程序,供使用Quartz的程序员参考和使用。
它可以帮助用户以图形化界面或输入框形式设置各个字段,然后自动生成对应的Cron表达式,同时也可以解析已有的Cron表达式并展示其含义。 6. **quartz-monitor-master**: 这可能是Quartz的一个监控工具的源码仓库。...
在Quartz中,我们可以使用`CronExpression`类的静态方法`parse(String cronExpression)`来解析一个Cron表达式,得到一个`CronExpression`实例。这个实例提供了丰富的API,如`next火prevFireTime(Date date)`,可以...
总的来说,Quartz表达式工具是管理定时任务的强大助手,CronExpBuilder则进一步降低了使用Cron表达式的复杂性,提高了开发效率。通过深入理解Cron表达式和熟练使用CronExpBuilder,开发者能够更加自如地控制和调整...
Quartz Cron表达式是Java定时任务库Quartz的重要组成部分,用于定义定时任务的执行规则。Cron表达式是一种字符串格式,由七个子表达式组成,分别代表秒、分、小时、日、月、周和年,允许指定一个精确的时间调度。...