我想测试小于或等于或 GreaterThanOrEqualTo 的日期。 我无法在LocalDateAPI中找到任何相关的功能。 isBefore , isEqual 和 isAfter 。
我正在添加一天并减去一天来实现同样的目标。是否有更好的功能来实现同样的目标?
boolean isGTOperator = filterOperator == OperatorEnum.GT;
boolean isLTOperator = filterOperator == OperatorEnum.LT;
boolean isLTEqualOperator = filterOperator == OperatorEnum.LTE;
boolean isGTEqualOperator = filterOperator == OperatorEnum.GTE;
if (isGTOperator ) {
return (myDate).isAfter(filterDate);
} else if (isGTEqualOperator ) {
return (myDate).isAfter(filterDate.plusDays(1));
}
else if (isLTOperator ) {
return ( myDate).isBefore(filterDate);
} else if (isLTEqualOperator ) {
return (myDate).isBefore(filterDate.minusDays(1));
}
答案 0 :(得分:1)
看起来你可以使用Date.compareTo()。如果日期相等,则返回值为0;如果日期在参数日期之后,则返回值大于0;如果日期在参数日期之前,则返回值小于0。 This是一个有用的参考。
答案 1 :(得分:0)
假设您有两个日期,即date1和date2
第一种方法 Date.compareTo()
如果两个日期相等,则返回 0
如果date1大于date2,则返回的值大于0. date1.compareTo(date2)>0
如果date1小于date2,则返回的值小于0. date1.compareTo(date2)<0
第二种方法等于,之前,之后
这些方法按其名称运作,即
if(date1.equals(date2)){System.out.println("true");}
if(date1.after(date2)){System.out.println("true");}
if(date1.before(date2)){System.out.println("true");}
注意上述方法用于比较Date(),即 java.util.Date