2014-10-03 34 views
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日。

enter image description here

編輯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(本月的第一個星期日)。

回答