首页 > 解决方案 > 将日期列表与当前日期进行比较,即列表中有多少日期等于 currentdate

问题描述

想要比较日期列表(一一获取并与今天的当前日期进行比较,如果相等则获取与当前日期相等的日期get flag=1并使用它

@RequestMapping("/test")
public ModelAndView showdate() {
    ModelAndView model = new ModelAndView("test");

    List<Date> newDate = new ArrayList<Date>();
    newDate = studentDao.Datelist();

    long millis = System.currentTimeMillis();
    java.sql.Date date = new java.sql.Date(millis);

    System.out.println(date);
    System.out.println(newDate);

    int flag = 0;
    for (Date newDate1 : newDate) { //for each construct
        // Enter code here
        System.out.println(newDate1);

        if (date.compareTo(newDate1) == 0) {
            flag = 1;
        }
    }

    if (flag == 1) {
        System.out.println("date is equal");
    } else {
        System.out.println("date is not equal");
    }

    return model;
}

标签: javadate-comparisondate

解决方案


java.util.Date还包含时间详细信息(小时/分钟/秒)等。当您打印日期变量时,您肯定可以看到。所以你只需要获取日期部分。另一个问题是这个旧的(过时的)类的使用。java.time自 java 7 以来,它已被类取代。

// converting java.util.Date to java.time.LocalDate 
java.util.Date date = new java.util.Date();
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

LocalDate 的实例不包含时间详细信息,可以安全地进行比较。

编辑

转换java.sql.Datejava.time.LocalDate很简单toLocalDate()


推荐阅读