14

特定のcron式で表される日付と時刻の最初の出現を見つける必要があります。指定されたcron式からデータオブジェクトを取得するのに役立つJavaクラス、ユーティリティコードはありますか?

4

6 に答える 6

21

これには、Spring のhttp://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/scheduling/support/CronSequenceGenerator.htmlを活用することもできます。

CronSequenceGenerator generator = new CronSequenceGenerator(cronExpression);
Date nextRunDate= generator.next(new Date());
于 2016-08-08T05:57:25.360 に答える
20

org.quartz.CronExpressionを確認 できます。使用できる getNextValidTimeAfter という名前のメソッドがあります。

于 2010-12-06T07:07:24.427 に答える
8

これは、Quartz の CronExpression に似ていますが、完全なスケジューラーをプロジェクトに追加する必要のない代替手段です: cron-utils

次の方法で必要な日付を取得できます。

//Get date for next execution
DateTime now = DateTime.now();
CronDefinition cronDefinition = CronDefinitionBuilder.instanceDefinitionFor(QUARTZ);
CronParser parser = new CronParser(cronDefinition);
ExecutionTime executionTime = ExecutionTime.forCron(parser.parse("* * * * * * *"));
DateTime nextExecution = executionTime.nextExecution(now));

公式の説明によると、cron-utilsは次のとおりです。

cron を解析、検証、移行し、人間が読める説明を取得するための Java ライブラリ。このプロジェクトはセマンティック バージョニング規則に従い、Apache 2.0 ライセンスを使用します。

于 2015-09-10T16:47:52.237 に答える
8

Spring を使用している場合は、次を使用できます。

CronTrigger trigger = new CronTrigger(cron);
TriggerContext context = new TriggerContext() {

public Date lastScheduledExecutionTime() {
    return null;
}

public Date lastActualExecutionTime() {
    return null;
}

public Date lastCompletionTime() {
    return null;
}
};
return trigger.nextExecutionTime(context);
于 2014-04-04T15:13:37.703 に答える
3

次のいずれかを使用できるようです。

于 2010-12-06T07:01:48.740 に答える