Zum Inhalt springen
CronExplain

Quartz-Cron-Ausdrücke erklärt

Quartz Scheduler, die Job-Bibliothek hinter vielen Java-Anwendungen, nutzt ein umfangreicheres Cron-Format als Unix-crontab. Füge unten einen Quartz-Ausdruck ein, um ihn in Klartext zu lesen, die nächsten Ausführungen zu prüfen und ihn in andere Dialekte umzuwandeln.

Bedeutung

Quartz: Sekunden zuerst, optionales Jahr, 1 = Sonntag. Genau ein Tagesfeld muss „?“ sein. Unterstützt L, W und #.

✓ Gültig · Bedeutung

Um 12:00, Montag bis Freitag

Vorlagen

Nächste 10 Ausführungen

#In UTCDeine Ortszeit
1——
2——
3——
4——
5——
6——
7——
8——
9——
10——

Derselbe Zeitplan in anderen Dialekten

  • Standard-crontab0 12 * * 1-5
  • AWS EventBridgecron(0 12 ? * MON-FRI *)EventBridge-Regeln verwenden UTC.
  • Spring0 0 12 * * MON-FRI

Visueller Editor

Wähle Werte pro Feld. Der Editor erzeugt einen Standard-Ausdruck mit fünf Feldern, der beim Übernehmen in den gewählten Dialekt umgewandelt wird.

Minute
Stunde
Tag im Monat
Monat
Wochentag
0 9 * * 1-5

Das Quartz-Cron-Format

Ein Quartz-Ausdruck hat sechs oder sieben Felder: Sekunden, Minuten, Stunden, Tag im Monat, Monat, Wochentag und optional das Jahr. 0 0 12 ? * MON-FRI etwa feuert werktags um 12 Uhr. Wochentage werden von 1 (Sonntag) bis 7 (Samstag) gezählt, englische Namen wie MON oder FRI sind auch in Bereichen erlaubt.

Die Fragezeichen-Regel

Quartz erlaubt nicht, Tag im Monat und Wochentag gleichzeitig einzuschränken. Genau eines der beiden Felder muss „?“ enthalten, was „kein bestimmter Wert“ bedeutet. 0 0 12 * * MON ist daher ungültig; richtig ist 0 0 12 ? * MON. Der Erklärer weist sofort darauf hin.

Sonderzeichen L, W und #

L steht für „letzter“: L im Feld Tag im Monat ist der letzte Tag des Monats, L-3 drei Tage davor, und 6L im Wochentagsfeld ist der letzte Freitag. W sucht den nächstgelegenen Werktag zu einem Datum, ohne den Monat zu verlassen: 15W feuert am Werktag, der dem 15. am nächsten liegt, LW ist der letzte Werktag des Monats. Die Raute wählt den n-ten Wochentag: 6#3 ist der dritte Freitag.

Quartz in der Praxis

Im Java-Code hängt ein Quartz-Ausdruck an einem Trigger, etwa TriggerBuilder.newTrigger().withSchedule(CronScheduleBuilder.cronSchedule("0 0 12 ? * MON-FRI").inTimeZone(TimeZone.getTimeZone("Europe/Berlin"))). Ohne inTimeZone gilt die Standardzone der JVM. Misfire-Anweisungen legen fest, was passiert, wenn der Scheduler zum geplanten Zeitpunkt nicht lief: sofort einmal nachholen oder zum nächsten Termin springen.

Häufige Fragen

Worin unterscheidet sich Quartz-Cron von Unix-Cron?
Quartz stellt ein Sekundenfeld voran und erlaubt ein Jahr am Ende, zählt Wochentage ab 1 = Sonntag, verlangt „?“ in einem Tagesfeld und unterstützt L, W und #.
Kann ich einen Quartz-Ausdruck in crontab umwandeln?
Ja, sofern die Sekunden 0 sind, kein Jahr gesetzt ist und weder L, W noch # vorkommen. Der Konverter zeigt das crontab-Äquivalent oder erklärt, warum es keines gibt.
Was bedeutet 0 0/5 * * * ?
Er feuert alle fünf Minuten in Sekunde 0, beginnend bei Minute 0 jeder Stunde, jeden Tag.
Ist Springs @Scheduled-Cron dasselbe wie Quartz?
Sehr ähnlich, aber Spring zählt Sonntag als 0 oder 7, hat kein Jahresfeld und verlangt kein „?“. Für Spring-Ausdrücke gibt es die Spring-Seite.