【发布时间】:2016-10-23 12:12:13
【问题描述】:
我需要检查当前时间是否在上午 8 点到下午 3 点之间。如果在这些时间范围之间,那么我需要返回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。
【问题讨论】:
-
套用开始喝酒的借口,“它总是在世界某个地方的早上 8 点到下午 3 点之间”。一方面,您需要指定一个时区来评估本地时间。
-
我不知道有一种“正确”的方法可以做到这一点。 java.util.Date 可以正常工作,但您可能需要查看 java.time.ZonedDateTime,这将有助于解决@AndyTurner 指出的时区问题
-
@AndyTurner 时区将是 PDT
-
@user1950349 全年无休?或者你的意思是例如美国/洛杉矶?无论您的回复如何,都知道 Date 没有时区信息,因此您可能不会总是得到您期望的结果。