java - 没有时间的日期比较

标签 java date-comparison

我意识到这是一个被问过很多次的问题,但我已经仔细筛选过,似乎找不到完全可以帮助我的答案。我首先要说的是我不能使用 Joda。

我正在对一个程序进行更改,该程序要求我将用户输入日期(起始日期)与列中的日期进行比较。

无法使用 SQL 来完成该请求,因为必须在返回结果后运行此列上的日期检查过滤器。

该代码正在检查表中的条目,对“起始日期”和字段条目进行比较,然后根据 boolean 值返回 true 还是 false 来显示该行数据。

除了一个部分之外,所有代码都工作正常。它检查表中的日期是否大于或等于“起始日期”。

示例:

The user enters the date 13/04/2015.

The program SHOULD return all rows with the date field that is 13/04/2015 or later.

The program actually returns all dates that are 1 day after this date. i.e. anything that is 14/04/2015 and onwards.

我检查此部分的代码是:

private boolean checkArngdDateCriteria(OrderBean singleOrderBean) {
    if (getSearchArngdFromDate().getValue()!= null || getSearchArngdToDate().getValue()!= null) {
        Date checkArngdToDate = (Date)getSearchArngdToDate().getValue();
        Date checkArngdFromDate = (Date)getSearchArngdFromDate().getValue();

        if (getSearchArngdFromDate().getValue()!= null && getSearchArngdToDate().getValue()== null && singleOrderBean.getOrdStatD()!= null) {
            if (singleOrderBean.getOrdStatD().after(checkArngdFromDate) || singleOrderBean.getOrdStatD().equals(checkArngdFromDate)) {
                return true;
            }
        }

EDIT:

//This retrieves the date from the results table
singleOrderBean.getOrdStatD()

//This retrieves the value from the user input field (retrieved as Object)
getSearchArngdFromDate().getValue()

是否有人知道一些代码,可以使 From Date 被视为等于或小于表日期(如果它们都是 13/04/2015)?

最佳答案

Date 类包含时间字段(以及各种其他字段)。您正在比较“之后”或“等于”。然而,“等于”并不是做你认为它正在做的事情。这不仅仅是比较日期。仅当所有字段都相等时,它才会返回true。解决这个问题的最简单方法是,不要执行“after or equals”,而执行“not before”。

        if (!singleOrderBean.getOrdStatD().before(checkArngdFromDate)) {
            return true;
        }

关于java - 没有时间的日期比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33366029/

相关文章:

java - jdbc查询对hibernate二级缓存有什么影响?我可以触发特定缓存区域的缓存刷新吗

java - 出现错误 : "Unknown property ' ' on class MyBean"? 的原因是什么

java - 在将 CSV 字段导入数据库之前修改它们

SQL 日期比较仅使用日期而不是时间

java - 切换到 STS 3.8.3 时出现 ClassNotFoundException

java - 休息响应中重复的 Swagger 鉴别器字段

mysql - 比较 MySQL 中的日期忽略 DateTime 字段的时间部分

JavaScript 日期比较在 IE8 中失败

iphone - 时间间隔自日期问题

java - 如何获得两个 ZonedDateTime 实例中的最大值?