0

好的,所以我拥有的是一个 ScheduledExexecutorService,它每秒检查一次日期列表中的日期是否已过,代码:

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 语句中收到错误,我如何检查日期是否已过?我会将调度程序更改为每分钟左右检查一次,而不是几秒钟后检查。

4

1 回答 1

7

在 Java 中,您应该使用afterbefore方法。

if (cal.getTime().after(dateList.get(i))){
   kaladeList.add(kaladeList.get(i));
   kaladeListats.add(kaladeListats.get(i));
}
于 2012-10-23T15:01:51.210 回答