CronExpression
instances are created through
parse(String)
; the next match is determined with
next(Temporal)
.
Since:
Author:
Arjen Poutsma
See Also:
CronTrigger
Determine whether the given string represents a valid cron expression.
Calculate the next
Temporal
that matches this expression.
Return the expression string used to create this
CronExpression
.
Parse the given
crontab expression
string into a
CronExpression
.
The string has six single space-separated time and date fields:
┌───────────── second (0-59)
│ ┌───────────── minute (0 - 59)
│ │ ┌───────────── hour (0 - 23)
│ │ │ ┌───────────── day of the month (1 - 31)
│ │ │ │ ┌───────────── month (1 - 12) (or JAN-DEC)
│ │ │ │ │ ┌───────────── day of the week (0 - 7)
│ │ │ │ │ │ (0 or 7 is Sunday, or MON-SUN)
│ │ │ │ │ │
* * * * * *
The following rules apply:
A field may be an asterisk (
*
), which always stands for
"first-last". For the "day of the month" or "day of the week" fields, a
question mark (
?
) may be used instead of an asterisk.
Ranges of numbers are expressed by two numbers separated with a hyphen
(
-
). The specified range is inclusive.
Following a range (or
*
) with
/n
specifies
the interval of the number's value through the range.
English names can also be used for the "month" and "day of week" fields.
Use the first three letters of the particular day or month (case does not
matter).
The "day of month" and "day of week" fields can contain a
L
-character, which stands for "last", and has a different meaning
in each field:
In the "day of month" field,
L
stands for "the last day of the
month". If followed by an negative offset (i.e.
L-n
), it means
"
n
th-to-last day of the month". If followed by
W
(i.e.
LW
), it means "the last weekday of the month".
In the "day of week" field,
dL
or
DDDL
stands for
"the last day of week
d
(or
DDD
) in the month".
The "day of month" field can be
nW
, which stands for "the nearest
weekday to day of the month
n
".
If
n
falls on Saturday, this yields the Friday before it.
If
n
falls on Sunday, this yields the Monday after,
which also happens if
n
is
1
and falls on a Saturday
(i.e.
1W
stands for "the first weekday of the month").
The "day of week" field can be
d#n
(or
DDD#n
), which
stands for "the
n
-th day of week
d
(or
DDD
) in
the month".
Example expressions:
"0 0 * * * *"
= the top of every hour of every day.
"*/10 * * * * *"
= every ten seconds.
"0 0 8-10 * * *"
= 8, 9 and 10 o'clock of every day.
"0 0 6,19 * * *"
= 6:00 AM and 7:00 PM every day.
"0 0/30 8-10 * * *"
= 8:00, 8:30, 9:00, 9:30, 10:00 and 10:30 every day.
"0 0 9-17 * * MON-FRI"
= on the hour nine-to-five weekdays
"0 0 0 25 12 ?"
= every Christmas Day at midnight
"0 0 0 L * *"
= last day of the month at midnight
"0 0 0 L-3 * *"
= third-to-last day of the month at midnight
"0 0 0 1W * *"
= first weekday of the month at midnight
"0 0 0 LW * *"
= last weekday of the month at midnight
"0 0 0 * * 5L"
= last Friday of the month at midnight
"0 0 0 * * THUL"
= last Thursday of the month at midnight
"0 0 0 ? * 5#2"
= the second Friday in the month at midnight
"0 0 0 ? * MON#1"
= the first Monday in the month at midnight
The following macros are also supported:
"@yearly"
(or
"@annually"
) to run un once a year, i.e.
"0 0 0 1 1 *"
,
"@monthly"
to run once a month, i.e.
"0 0 0 1 * *"
,
"@weekly"
to run once a week, i.e.
"0 0 0 * * 0"
,
"@daily"
(or
"@midnight"
) to run once a day, i.e.
"0 0 0 * * *"
,
"@hourly"
to run once an hour, i.e.
"0 0 * * * *"
.
Parameters:
expression
- the expression string to parse
Returns:
the parsed
CronExpression
object
Throws:
IllegalArgumentException
- in the expression does not conform to
the cron format
isValidExpression
Determine whether the given string represents a valid cron expression.
Parameters:
expression
- the expression to evaluate
Returns:
true
if the given expression is a valid cron expression
Since:
5.3.8
public
<T extends
Temporal
&
Comparable
<? super T>>
T
next
(T temporal)
Calculate the next
Temporal
that matches this expression.
Type Parameters:
T
- the type of temporal
Parameters:
temporal
- the seed value
Returns:
the next temporal that matches this expression, or
null
if no such temporal can be found
toString
Return the expression string used to create this
CronExpression
.
Overrides:
toString
in class
Object