Quartz.Net CronTime IsSatisfiedBy()永不返回true?

问题描述:

我尝试使用Quartz.Net的CronExpression.IsSatisfiedBy()函数简单一些。但是这个功能总是返回false。即使当我用第二个表达式"* * * * * ?"。示例代码如下:Quartz.Net CronTime IsSatisfiedBy()永不返回true?

//every second cron expression 
var cron = new Quartz.CronExpression("* * * * * ?"); 

// all the results are always false 
var result1 = cron.IsSatisfiedBy(DateTimeOffset.Now); 
var result2 = cron.IsSatisfiedBy(DateTimeOffset.UtcNow); 
var result3 = cron.IsSatisfiedBy(DateTime.Now); 
var result4 = cron.IsSatisfiedBy(DateTime.UtcNow); 

什么错了?

这是一个大约毫秒的Quartz.NET issue。 要解决此问题,您可以使用带有毫秒毫秒的时间的IsSatisfiedBy方法。像这样:

var now = DateTimeOffset.UtcNow; 
//no milliseconds time 
var test = new DateTimeOffset(now.Year, now.Month, now.Day, now.Hour, 
           now.Minute, now.Second, now.Offset); 

//every second cron expression 
var cron = new Quartz.CronExpression("* * * * * ?"); 
//hey, that's true! 
var result = cron.IsSatisfiedBy(test);