クラス CronExpression

java.lang.ObjectSE
org.springframework.scheduling.support.CronExpression

public final class CronExpression extends ObjectSE
次に一致するときに計算できる crontab 式の表現

CronExpression インスタンスは parse(String) を通じて作成されます。次の一致は next(Temporal) で決定されます。

L/# 式を使用した Quartz 日 / 週フィールドをサポートします。SUN-SAT の 0 ~ 6 (SUN の場合も 7) を含む、その他すべての点で一般的な cron 規則に従います。Quartz は、SUN-SAT の 1 ~ 7 まで cron の曜日規則から逸脱していますが、Spring は、オプションの Quartz 固有の L/# 式と組み合わせた場合でも cron に厳密に従っていることに注意してください。

導入:
5.3
作成者:
Arjen Poutsma
関連事項:
  • メソッドの詳細

    • parse

      public static CronExpression parse(StringSE expression)
      指定された crontab 式文字列を CronExpression に解析します。文字列には、スペースで区切られた 6 つの時間と日付のフィールドがあります。
       ┌───────────── 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)
       │ │ │ │ │ │
       * * * * * *
       

      次の規則が適用されます。

      • フィールドはアスタリスク(*)にすることができ、これは常に「最初から最後」を表します。「日」または「曜日」フィールドでは、アスタリスクの代わりに疑問符(?)を使用できます。
      • 数値の範囲は、ハイフン(-)で区切られた 2 つの数値で表されます。指定された範囲は包括的です。
      • /n で範囲(または *)をたどると、範囲全体の数値の値の間隔が指定されます。
      • 「月」および「曜日」フィールドには英語名も使用できます。特定の日または月の最初の 3 文字を使用します(大文字と小文字は関係ありません)。
      • 「日」および「曜日」フィールドには、「最後」を表す L -character を含めることができ、各フィールドで異なる意味を持ちます。
        • 「月の日」フィールドでは、L は「月の最後の日」を表します。負のオフセットが続く場合(つまり、L-n)、「n からその月の最後の日まで」を意味します。W (つまり LW)が後に続く場合は、「月の最後の平日」を意味します。
        • 「曜日」フィールドの dL または DDDL は、「月の最後の曜日 d (または DDD)」を表します。
      • 「日」フィールドは nW にすることができます。これは、「月の日に最も近い平日 n」を表します。n が土曜日になると、その前に金曜日になります。n が日曜日に落ちる場合、これは月曜日になります。これは、n が 1 で土曜日に落ちる場合にも発生します(つまり、1W は「月の最初の平日」を表します)。
      • 「曜日」フィールドには d#n (または DDD#n)を指定できます。これは、「 n -th の曜日 d (または DDD)を表します」。

      式の例:

      • "0 0 * * * *" = 毎時 0 分 0 秒。
      • "*/10 * * * * *" = 10 秒ごと。
      • "0 0 8-10 * * *" = 毎日 8, 9, 10 時。
      • "0 0 6,19 * * *" = 毎日 AM 6:00 および PM 7:00。
      • "0 0/30 8-10 * * *" = 毎日 8:00, 8:30, 9:00, 9:30, 10:00, 10:30。
      • "0 0 9-17 * * MON-FRI" = 平日 9 時から 5 時
      • "0 0 0 25 12 ?" = クリスマスの真夜中
      • "0 0 0 L * *" = 毎月の深夜 0 時
      • "0 0 0 L-3 * *" = 真夜中の月の 3 番目から最後の日
      • "0 0 0 1W * *" = 真夜中の月の最初の平日
      • "0 0 0 LW * *" = 月の最後の平日午前 0 時
      • "0 0 0 * * 5L" = 月の最終金曜日の午前 0 時
      • "0 0 0 * * THUL" = 月の最終木曜日の深夜
      • "0 0 0 ? * 5#2" = 月の第 2 金曜日の深夜
      • "0 0 0 ? * MON#1" = 月の最初の月曜日の深夜

      次のマクロもサポートされています。

      • "@yearly" (または "@annually")は、年に 1 回実行されます。つまり、"0 0 0 1 1 *"
      • "@monthly" は月に 1 回実行されます。つまり、"0 0 0 1 * *"
      • "@weekly" は週に 1 回実行されます。つまり、"0 0 0 * * 0"
      • "@daily" (または "@midnight")は 1 日 1 回実行されます。つまり、"0 0 0 * * *"
      • "@hourly" は 1 時間に 1 回実行されます。つまり、"0 0 * * * *" です。
      パラメーター:
      expression - 解析する式の文字列
      戻り値:
      解析された CronExpression オブジェクト
      例外:
      IllegalArgumentExceptionSE - 式のが cron 形式に準拠していません
    • isValidExpression

      public static boolean isValidExpression(@Nullable StringSE expression)
      指定された文字列が有効な cron 式を表すかどうかを判別します。
      パラメーター:
      expression - 評価する式
      戻り値:
      true (指定された式が有効な cron 式である場合)
      導入:
      5.3.8
    • next

      @Nullable public <T extends TemporalSE & ComparableSE<? super T>> T next(T temporal)
      この式に一致する次の TemporalSE を計算します。
      型パラメーター:
      T - テンポラルの型
      パラメーター:
      temporal - シード値
      戻り値:
      この式に一致する次のテンポラル、またはそのようなテンポラルが見つからない場合は null 
    • equals

      public boolean equals(@Nullable ObjectSE other)
      オーバーライド:
      クラス ObjectSEequalsSE 
    • hashCode

      public int hashCode()
      オーバーライド:
      クラス ObjectSEhashCode 
    • toString

      public StringSE toString()
      この CronExpression の作成に使用された式文字列を返します。
      オーバーライド:
      クラス ObjectSEtoString