使用Joda时间并获得类似以下行为的最简单方法是什么:
public boolean check( DateTime checkTime )
{
DateTime someTime = new DateTime(); //set to "now" for sake of example
return checkTime.isBefore( someTime ) && checkTime.notMoreThanThreeHoursBefore( someTime );
}
Run Code Online (Sandbox Code Playgroud)
因此,如果someTime设置为15:00并checkTime设置为12:15,则应返回true.
如果someTime设置为15:00并checkTime设置为11:45,则应该返回false,因为checkTime它超过3小时someTime.
如果someTime设置为15:00并checkTime设置为15:15,则应该返回false,因为checkTime它在之后someTime.
Ale*_*x B 49
经过一些游戏,我发现这很好看:
return new Interval( someTime.minusHours( 3 ), someTime ).contains( checkTime );
Run Code Online (Sandbox Code Playgroud)
简单:
DateTime someTime = new DateTime();
DateTime earliest = someTime.minusHours(3);
if (earliest.compareTo(checkTime) <= 0 && checkTime.compareTo(someTime) < 0)
Run Code Online (Sandbox Code Playgroud)
我用过compareTo没有isBeforeOrEqual或isAfterOrEqual- 但你可以使用compareTo任何关系.
我怀疑这只是minusHours你在追求:)
| 归档时间: |
|
| 查看次数: |
14313 次 |
| 最近记录: |