小编典典

如何检查时间是否在特定范围之间?

java

我需要检查当前时间是否在8 AM和3 PM之间。如果在这些时间范围之间,那么我需要返回yes,否则返回false。

boolean isNowBetweenDateTime(final Date s, final Date e) {
    final Date now = new Date();
    return now.after(s) && now.before(e);
}

但是我不确定我应该在Date这里使用吗?我可以不使用时间戳并相应地检查时间戳吗?什么是正确的方法?

我仍在使用Java 7。


阅读 229

收藏
2020-11-26

共1个答案

小编典典

如果您使用的是Java 8之前的Java版本,请查看Joda的API文档。

具体来说,有一个AbstractInterval#containsNow()方法可让您执行所需的操作。

例如:

new Interval(start, end).containsNow();

其中start和end可以是许多不同值/对象中的任何一个。请参阅有关可用的不同构造函数的文档:时间间隔


您可以将方法修改如下:

boolean isNowBetweenDateTime(final DateTime s, final DateTime e) {
    return new Interval(s, e).containsNow();
}

就是说,这只是一行,所以您实际上不需要用自己的方法包装它:)

再次查看文档。Interval构造函数可以采用各种对象/值,因此请选择适合您需要的对象/值。我建议使用DateTime,因为它似乎可以最好地描述您要执行的操作。

2020-11-26