Naar de inhoud
HexSlate

Cron Expression Parser

5 velden · standaard cron
Seconden

Uit, alleen Quartz. Dit aanzetten voegt een secondenveld toe en zet de uitvoer om naar 6-velden Quartz.

Minuut
Uur

24-uursklok.

Dag van de maand

Probeer L voor de laatste dag, of 15W voor de werkdag die het dichtst bij de 15e ligt.

Maand
Dag van de week

Het vraagteken, L en # gelden hier en bij dag van de maand, alleen Quartz.

At 03:30 on Monday and Friday

1vr 4 sep 2026, 03:30over 3 dagen
2ma 7 sep 2026, 03:30over 6 dagen
3vr 11 sep 2026, 03:30over 10 dagen
4ma 14 sep 2026, 03:30over 13 dagen
5vr 18 sep 2026, 03:30over 17 dagen
6ma 21 sep 2026, 03:30over 20 dagen
7vr 25 sep 2026, 03:30over 24 dagen
8ma 28 sep 2026, 03:30over 27 dagen
9vr 2 okt 2026, 03:30over 31 dagen
10ma 5 okt 2026, 03:30over 34 dagen
geldigvolgende uitvoering over 3 dagen10 uitvoeringen berekend

Vijf velden of zes

Standaard cron is minuut, uur, dag van de maand, maand, dag van de week. Quartz, ingebouwd in Spring en andere Java-frameworks, zet er een zesde veld voor seconden voor. Het dialect wordt afgeleid uit het aantal velden.

De tijdzone doet ertoe vanwege klokwisselingen. "Om 03:30" is in UTC een ander moment, afhankelijk van of de zomertijd die dag geldt, dus een schema op vaste lokale tijd moet je uitrekenen in de zone waarin mensen het lezen, niet in UTC en niet in wat er toevallig op een server staat.

De tabel met dialectondersteuning

Waar planners van elkaar verschillen. De meeste documentatie behandelt er één tegelijk.

Symbool Betekenis Standaard cron Quartz AWS EventBridge
*elke waarde
,lijst, bijv. 1,3,5
-bereik, bijv. 1-5
/ stap, bijv. een slash gevolgd door 15
? geen specifieke waarde, alleen dagvelden ×
L laatste dag van de maand, of laatste weekdag ××
# zoveelste weekdag, bijv. de 3e vrijdag ××
W dichtstbijzijnde weekdag bij een gegeven dag ××

Veelvoorkomende problemen

  • Dag van de maand en dag van de week worden niet met AND gecombineerd. Het is een OR. De klassieke cron-verrassing: als ze allebei beperkt zijn, gaat het schema af zodra een van beide past, niet alleen als ze allebei passen. 0 0 1 * 1 draait op de 1e van de maand en elke maandag, niet alleen op een maandag die toevallig de 1e is. Zet het veld waar het je niet om gaat op een wildcard, of in Quartz op ?, om een gewone AND te krijgen.
  • "Beperkt" betekent dat de tekst niet met een ster begint. Cron kijkt naar het eerste teken van het veld, niet naar waar het op uitkomt, dus een stap als 0 0 */2 * MON telt voor de regel hierboven als wildcard en doet een AND: elke tweede dag die ook een maandag is. Schrijf 0 0 1-31/2 * MON voor dezelfde verzameling dagen en dezelfde expressie doet ineens een OR.
  • Quartz nummert de dag van de week anders. Standaard cron loopt van 0 tot 6 met zondag als 0; Quartz loopt van 1 tot 7 met zondag als 1. Deze tool zet elke numerieke dag van de week in beide dialecten om naar 0 tot 6. Dagnamen schrijven (MON, FRI) in een Quartz-expressie haalt de dubbelzinnigheid helemaal weg.
  • Een kloktijd rond een klokwisseling is dubbelzinnig. "01:30" op de dag dat de klok teruggaat gebeurt twee keer; "02:30" op de dag dat hij vooruitgaat gebeurt nooit. Elke planner lost dit anders op, dus kijk na wat de jouwe documenteert.
  • L en # zijn niet met een lijst te combineren.1,L is ongeldig. Schrijf een aparte regel, of zet in Quartz ? op het veld dat je niet beperkt.

Veelgestelde vragen

Waarom laat dezelfde expressie in een andere tijdzone een andere tijd zien?

Een cronveld is een kloktijd, geen moment, en droeg nooit een tijdzone. "Om 03:30" in Europe/Brussels en in America/New_York schelen uren. Kies de zone waarin het schema draait, niet per se je eigen zone.

Controleert dit mijn expressie tegen een echte planner?

Nee. Het volgt de gedocumenteerde grammatica's, inclusief de verschillen in de tabel hierboven, maar de planner waar je naartoe deployt heeft het laatste woord. Een zevende veld voor het jaar, dat sommige Quartz-voorbeelden gebruiken, wordt hier als ongeldig gemeld.

Hoe ver vooruit zoekt "volgende 10 runs"?

8 jaar, genoeg voor een schema dat één keer per jaar draait en genoeg om te voorkomen dat een onmogelijke expressie, zoals dag 31 vastgezet op februari, eeuwig doorzoekt.

In welke tijdzone draait het schema?

In die van de machine die het draait, en dat is verreweg de meest voorkomende cron-verrassing. Cron zelf heeft geen tijdzoneveld, dus een job die er lokaal goed uitziet gaat na een zomertijdwissel een uur te vroeg of te laat af, of draait in UTC op een server die je nooit hebt ingesteld. Kijk de TZ-variabele in de crontab of de configuratie van de planner na, en gebruik UTC voor alles wat gecoördineerd moet zijn.