Calendar

之前定时任务一直没有问题,今天把时间改为上午所有任务都要执行完成,然后发现了居然一直再重试相同的几个任务。

问题就是时间的问题:

Calendar now = Calendar.getInstance();
now.setTime(new Date());
now.set(Calendar.HOUR, 0);
now.set(Calendar.MINUTE, 0);
now.set(Calendar.SECOND, 0);
now.set(Calendar.MILLISECOND, 0);

上面的代码,如果是上午执行,结果yyyy-MM-dd-00:00:00,下午的时候就会变成yyyy-MM-dd-12:00:00,就是这个问题导致了时间比较的时候出了问题。所以应该使用 HOUR_OF_DAY

Calendar now = Calendar.getInstance();
now.setTime(new Date());
now.set(Calendar.HOUR_OF_DAY, 0);
now.set(Calendar.MINUTE, 0);
now.set(Calendar.SECOND, 0);
now.set(Calendar.MILLISECOND, 0);