isAfter isBefore Java 8 LocalDateTime一天不同

Sky*_*leR 6 java datetime backend java-8

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

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

if(todayDate.isAfter(startDate) && todayDate.isBefore(endDate))
{
  // task
}
Run Code Online (Sandbox Code Playgroud)

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

jia*_*ang 7

这将解决它:只需添加一个检查,以确定今天的日期是您必须自己实现的开始日期还是结束日期

if( (todayDate.isAfter(startDate) && todayDate.isBefore(endDate) ) || (todayDate.isEqual(startDate) || todayDate.isEqual(endDate) )
{
     // task
}
Run Code Online (Sandbox Code Playgroud)

这是因为isAfter并且isBefore都是严格的.

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

if(!todayDate.isAfter(endDate) && !todayDate.isBefore(startDate))
{
    // task
}
Run Code Online (Sandbox Code Playgroud)

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

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

  • 对不起,您必须在第二个中切换startdate和enddate (2认同)