我需要检查当前时间是否在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这里使用吗?我可以不使用时间戳并相应地检查时间戳吗?什么是正确的方法?
Date
我仍在使用Java 7。
如果您使用的是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,因为它似乎可以最好地描述您要执行的操作。