java - java 中的日期比较搜索今天、明天

标签 java sql date servlets equals

我接受 JSP 页面的属性并想要进行比较。传递给 servlet 的日期是今天、明天还是另一天。我如何比较这个???

   Date dateToDo = Date.valueOf(request.getParameter("date")); //for example 2019-08-31

    Date today = new Date (System.currentTimeMillis());
    Date tomorrow = new Date (System.currentTimeMillis() + 86400000);



    if(dateToDo.equals(today)){
        System.out.println("Today!");
    } else if (dateToDo.equals(tomorrow)){
        System.out.println("Tomorrow!");
    } else {
        System.out.println("OTHER DAY");
    }

最佳答案

java.time

    LocalDate dateToDo = LocalDate.parse(request.getParameter("date")); //for example 2019-08-31

    LocalDate today = LocalDate.now(ZoneId.of("Europe/Minsk"));
    LocalDate tomorrow = today.plusDays(1);

    if(dateToDo.equals(today)){
        System.out.println("Today!");
    } else if (dateToDo.equals(tomorrow)){
        System.out.println("Tomorrow!");
    } else {
        System.out.println("OTHER DAY");
    }

不要使用java.sql.Date。首先,它设计得很糟糕,确实是一个糟糕的黑客,而且早已过时了。其次,它除了在 SQL 数据库之间传输日期之外,没有任何其他用途。第三,虽然它假装只是一个没有时间的日期,但事实并非如此,而是在内部存储了毫秒精度,这导致其 equals 方法无法按预期工作。相反,我使用 java.time 中的 LocalDate,这是现代 Java 日期和时间 API。 LocalDate 就是您所需要的:没有时间和时区的日期。

链接: Oracle tutorial: Date Time解释如何使用 java.time。

关于java - java 中的日期比较搜索今天、明天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57740369/

相关文章:

java - Intellij 配色方案在 Ubuntu 上无法正常工作

java - 用java读取midi IO设备

mysql - 如何根据时间戳和 bool 值查询记录?

javascript - 使用 JavaScript 获取日期范围内的特定日期

git - 如何将修订和构建日期添加到源?

Java 如何创建一个随机数 mod 5?

java - 重新定义静态最终模式

mysql - 如何在 MySQL 中仅对一列应用 DISTINCT 选择器

sql - 尝试创建函数时 DECLARE 部分中的“"VARCHAR"处或附近的语法错误”

java - Joda Time : How to get the day from a particular date in a year?