如果两个日期相等,则方法之前的日期返回 false
当将两个日期与日期之前的方法进行比较时,如果日期相似,则返回 false,如下所示:
- 日期1: 星期二 12月18日 00:00:00 GMT+02:00 2012
- date2: 周二 12月18日 00:00:00 GMT+02:00 2012
在这种情况下,该方法总是返回false,这对我来说没有意义(换句话说,不适用于我的情况)。我想检查日期(日/月/年)是否等于今天的日期(日/月/年)?date1.before(date2)
当将两个日期与日期之前的方法进行比较时,如果日期相似,则返回 false,如下所示:
在这种情况下,该方法总是返回false,这对我来说没有意义(换句话说,不适用于我的情况)。我想检查日期(日/月/年)是否等于今天的日期(日/月/年)?date1.before(date2)
因为,返回 false 是正常的。正如将做的那样。date1.equals(date2)
date1.before(date2)
date1.after(date2)
两个日期是相同的,所以一个不在另一个之前。
来自 javadoc :
true 当且仅当此 Date 对象所表示的时间时刻严格早于 when 所表示的瞬间;否则为假。
试试类似的东西:
if(date1.before(date2) || date1.equals(date2)) ...
下面提供的答案建议对逆向进行测试,他们是对的:
if(!date1.after(date2)) ...
这两个测试是等效的。
你可以简单地测试反函数:
!date1.after(date2)
您始终可以通过这种方式将严格订单检查转换为非严格检查。由于数学上:
a > b ⇔ ¬ (a ≤ b)