Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有任何java类可以从cron表达式中获取日期_Java_Date_Cron_Cronexpression - Fatal编程技术网

是否有任何java类可以从cron表达式中获取日期

是否有任何java类可以从cron表达式中获取日期,java,date,cron,cronexpression,Java,Date,Cron,Cronexpression,我需要找出给定cron表达式表示的日期和时间的第一次出现。 是否有任何java类、实用程序代码可以帮助从给定的cron表达式获取数据对象?看起来您可以使用以下任意一种: 您可以检查 它有一个名为GetNextValidTime的方法,您可以使用该方法。如果您使用的是Spring,则可以使用: CronTrigger trigger = new CronTrigger(cron); TriggerContext context = new TriggerContext() { public

我需要找出给定cron表达式表示的日期和时间的第一次出现。
是否有任何java类、实用程序代码可以帮助从给定的cron表达式获取数据对象?

看起来您可以使用以下任意一种:

您可以检查
它有一个名为GetNextValidTime的方法,您可以使用该方法。

如果您使用的是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);

这里有一个类似于Quartz的CronExpression的替代方案,但无需向您的项目添加成熟的调度程序:

您可以通过以下方式获得所需的日期:

//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));
根据官方描述,是:

一个Java库,用于解析、验证、迁移cron以及获取可读的描述。该项目遵循语义版本控制约定,并使用Apache2.0许可证


您还可以利用spring来实现这一点


回答得很好!简单、简短、易于启动的文档。如果使用Spring,则非常完美,因为无需添加其他第三方软件包。谢谢。这是默认时区。使用这个
新的CronSequenceGenerator(cronExpression,您的_时区)
CronSequenceGenerator generator = new CronSequenceGenerator(cronExpression);
Date nextRunDate= generator.next(new Date());