• ARTICLE
  • STRING
  • CONVERTER
  • ENCRYPT
  • NETWORK
  • MORE
    CHART
  • ARTICLE
    STRING
    CONVERTER
    ENCRYPT
    NETWORK
    MORE
    CHART
logo Online Tools
Comment Favorite Copy Link Share

Cron Expression Evaluation


Cron Expression Evaluation-summary

Cron expression calculation, online calculation of the execution plan time of cron (crontab) expression. Cron expression supports Linux style, cron4j style, quartz style and spring style.

Cron Expression Evaluation-instructions

Cron expression is a string separated by 4, 5 or 6 spaces and divided into 5, 6 or 7 fields. Each field represents a meaning and represents a specific set of time series, which is usually used as the schedule for executing programs or triggering actions.

Linux : minute hour dayOfMonth month dayOfWeek [user] [command] Reference Document
Cron4j : minute hour dayOfMonth month dayOfWeek Reference Document
Quartz : second minute hour dayOfMonth month dayOfWeek [year] Reference Document
Spring : second minute hour dayOfMonth month dayOfWeek Reference Document

Cron Expression Field Description

Field Required Allow Value Special Characters Note
second Yes 0-59 , - * / Only Quartz and Spring support this field
minute Yes 0-59 , - * /
hour Yes 0-23 , - * /
dayOfMonth Yes 1-31 , - * / ? L W ? L W Only partial implementation support
month Yes 1–12 or JAN–DEC , - * /
dayOfWeek Yes 0-7 or SUN-SAT , - * / ? L # ? L # Only partial implementation support. Linux, Spring supports 0-7. Cron4j supports 0-6. Quartz supports 1-7.
year No 1970–2099 , - * / Only Quartz supports this field.

Cron Expression Special Character Description

  1. * (“all values”) - used to select all values within a field. For example, “*” in the minute field means “every minute”.
  2. ? (“no specific value”) - useful when you need to specify something in one of the two fields in which the character is allowed, but not the other. For example, if I want my trigger to fire on a particular day of the month (say, the 10th), but don’t care what day of the week that happens to be, I would put “10” in the day-of-month field, and “?” in the day-of-week field. See the examples below for clarification.
  3. - - used to specify ranges. For example, “10-12” in the hour field means “the hours 10, 11 and 12”.
  4. , - used to specify additional values. For example, “MON,WED,FRI” in the day-of-week field means “the days Monday, Wednesday, and Friday”.
  5. / - 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”. You can also specify ‘/’ after the ‘’ character - in this case ‘’ is equivalent to having ‘0’ before the ‘/’. ‘1/3’ in the day-of-month field means “fire every 3 days starting on the first day of the month”.
  6. L (“last”) - has different meaning in each of the two fields in which it is allowed. 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”. You can also specify an offset from the last day of the month, such as “L-3” which would mean the third-to-last day of the calendar month. When using the ‘L’ option, it is important not to specify lists, or ranges of values, as you’ll get confusing/unexpected results.
  7. W (“weekday”) - 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.
  8. # - 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.