isAfter isBefore Java 8 LocalDateTime一天不同

时间:2015-11-20 00:59:57

标签: java datetime java-8 backend

我想比较两个日期和今天的日期。是和之后是最好的吗? isAfter和isBefore无法检测到一天的变化。让我们说:

If today is 20 Nov. I put in range 20 Nov-21 Nov.

if(todayDate.isAfter(startDate) && todayDate.isBefore(endDate))
{
  // task
}

此代码不会检测到今天是在范围内。或/ ||不适用,因为我有一套待测试的范围。对此有何想法?

1 个答案:

答案 0 :(得分:7)

这将解决这个问题:只需添加一项检查,确定今天是开始日期还是结束日期,您必须自行实施

if( (todayDate.isAfter(startDate) && todayDate.isBefore(endDate) ) || (todayDate.isEqual(startDate) || todayDate.isEqual(endDate) )
{
     // task
}

这是因为isAfterisBefore都是严格的。

编辑:更合理的解决方案:

if(!todayDate.isAfter(endDate) && !todayDate.isBefore(startDate))
{
    // task
}

通过否定isAfter,它变为endDate或之前。

通过否定isBefore,它变为startDate或之后。