0
我想在12月的第一週的每一天都運行一個cron作業。Cron表達式沒有給出適當的日期?
但是我的cron工作是在12月的第二個星期運行。
下面是代碼
import java.text.ParseException;
import java.util.Date;
import org.quartz.CronExpression;
public class CronExpressionTest{
public static void main(String[] args) throws ParseException {
String expression = "0 0 0 ? 12 2#1,3#1,4#1,5#1,6#1,7#1,1#1 *";
CronExpression cronExpression = new CronExpression(expression);
Date date = cronExpression.getNextValidTimeAfter(new Date());
System.out.println(date);
}
}
如果你看到下面的日曆,工作應該是第一次在12月1日執行,但它運行在12月7日。
編輯1:
它看起來像上週在cron從第一個星期日,而不是一個月的第一天開始。
編輯2: -
顯然cron表達式 「?0 0 0 12 2#1,3#1,4#1,5#1,6#1,7#1 *」 開始上12月7日開始的12月1日正確但是「0 0 0?12 2#1,3#1,4#1,5#1,6#1,7#1,1#1 *」從我加入1# 1(本月的第一個星期日)。