好吧,我所拥有的是ScheduledExxecutorService,如果日期列表中的日期已过,则每秒检查一次,代码:
public void dateCheckinator(){
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
Runnable r = new Runnable() {
@Override
public void run() {
Calendar cal = Calendar.getInstance();
for(int i=0;i<dateList.size();i++){
if (cal.getTime()>dateList.get(i)){
kaladeList.add(kaladeList.get(i));
kaladeListats.add(kaladeListats.get(i));
}
}
System.out.println(cal.getTime());
}
};
scheduler.scheduleAtFixedRate(r, 1, 1, TimeUnit.SECONDS);
}
但是我在if语句中收到错误,如何检查日期是否已过?我会将调度程序更改为每分钟左右检查一次,而不是几秒钟后。
答案 0 :(得分:6)
在Java中,您应该使用after
或before
方法。
if (cal.getTime().after(dateList.get(i))){
kaladeList.add(kaladeList.get(i));
kaladeListats.add(kaladeListats.get(i));
}