如何在Java8中使用LocalDate实现LessThanOrEqual和GreaterThanOrEqual

时间:2018-03-29 11:40:59

标签: java localdate

我想测试小于或等于 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));

                }

2 个答案:

答案 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