java - Java 中的相同日期比较返回 -1

标签 java jdbc

try {

        String hql = "SELECT taskDate FROM TaskFutureDates t WHERE t.taskId= : taskId";
        List<java.sql.Date> result = em.createQuery(hql).setParameter("taskId", taskId).getResultList();

        java.sql.Date currentDate =new Date(new java.util.Date().getTime()); 

        if (result.size() != 0) {

            for(java.sql.Date date: result) {

                if(date.compareTo(currentDate)>=0) {

                   System.err.println("CAST= "+(Date) date);
                    return (java.sql.Date) date;
                }

            }
        }

    } catch (Exception e) {
        // TODO: handle exception

        //System.err.println(e);
    }
    return null;

}

当我比较两个日期时,我遇到了错误场景

1.当我比较其他日子时,我得到-1
例如
2020年9月4日
2020年10月4日

  • 当日期相同时我得到-1
    例如
    2020年10月4日
    10/04/2020
  • 在第二种情况下,我应该得到0,为什么结果是-1?

    最佳答案

    来自compareTo文档:

    a value less than 0 if this Date is before the Date argument

    tod​​ay()(= 上个午夜)或表中的任何日期可能都小于 now()(包括当前时间)

    关于java - Java 中的相同日期比较返回 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61118805/

    相关文章:

    java - Perl 和 Java 中的 Unicode 比较

    java - 如果在 Jboss AS 7 中将 jdbc 部署为 Web 应用程序,模块名称是什么

    mysql - 尝试加载 jar 和外部类

    java - Java 中的电子邮件服务抛出 "out of memory"错误

    java - Spring mvc中如何将URL作为参数传递

    java - 如何从 LinkedList 获取数据?

    java - 在没有 X11 的情况下编译 OpenJDK 7

    java - 使用 jsp 将值传递给 settimeout 方法

    迁移到 WAS 8.5 和 java 1.7 后的 javax.naming.ConfigurationException

    java - 如何在 JPA 中映射没有外键的一对一关系?