Day-of-week numbering
Quartz numbers days 1-7 with SUN = 1 and SAT = 7. Spring follows classic cron and numbers 0-6 with SUN = 0, additionally accepting 7 as Sunday.
A Quartz "6L" (last Friday) is "5L" in Spring. A Quartz "2-6" (Monday to Friday) is "1-5" in Spring.
Last Friday of the month: Quartz: 0 0 0 ? * 6L Spring: 0 0 0 * * 5L
Names avoid the problem
Both dialects accept MON, TUE, … SUN, and those names mean the same weekday in both. If a schedule uses names, converting only requires renumbering days that were written as digits.
0 0 9 ? * MON-FRI // identical in Quartz and Spring
The year field
Quartz accepts a seventh year field ("0 0 12 ? * MON-FRI 2025"). Spring has no year field at all, so a year-pinned Quartz schedule cannot be converted without changing behaviour: the Spring version repeats every year.
Everything else matches
Apart from the weekday numbering, the syntax is the same. Spring copied Quartz on purpose.
| Construct | Quartz | Spring |
|---|---|---|
| Field count | 6, seconds first | 6, seconds first |
| L, LW, <n>W | yes | yes |
| <dow>L, <dow>#<n> | yes | yes |
| ? in a day field | "no specific value" | "no specific value" |
| Both day fields restricted | both must match | both must match |
| Weekday numbers | 1-7, SUN = 1 | 0-7, 0 = Sunday |
| Year field | 7th field | not supported |