如何检查日期是否已从列表中通过日期?在java中

Gra*_*tas 0 java date

好吧,所以我有一个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);
    }
Run Code Online (Sandbox Code Playgroud)

但是我在if语句中得到错误,如何检查日期是否已过?我将调度程序更改为每分钟左右检查一次,而不是几秒钟后检查.

Rob*_*bin 6

在Java中你应该使用after或before方法.

if (cal.getTime().after(dateList.get(i))){
   kaladeList.add(kaladeList.get(i));
   kaladeListats.add(kaladeListats.get(i));
}
Run Code Online (Sandbox Code Playgroud)

  • `>`运算符正在查看两个`Date`对象的内存位置,而不是像`after`那样调用`Date`特定的比较逻辑. (3认同)