如何检查当前小时是否介于某个范围之间

时间:2015-12-10 11:59:54

标签: java

我正在尝试检查当前时间是否介于7AM10AM

之间

我这样做

Calendar cal = Calendar.getInstance(); 
cal.setTime(new Date());               
int hour = cal.get(Calendar.HOUR_OF_DAY); 
if(hour >= 7 && hour <= 10)              
{

}

请告诉我这是否是一种有效的方法

2 个答案:

答案 0 :(得分:1)

是的,这是一种有效的方法。您还可以使用新的Time API(需要Java 8)

import java.time.LocalTime;
...
int hour = LocalTime.now().getHour();

获得小时的时间有点短。还有一个重载的now(ZoneId zoneId)方法。

或者使其成为带有时间查询的单行(也需要Java 8):

Boolean isBetween7and10AM = LocalTime.now().query(date -> date.get(ChronoField.CLOCK_HOUR_OF_DAY) >=7 &&
            date.get(ChronoField.CLOCK_HOUR_OF_DAY) < 10);

答案 1 :(得分:0)

烨。看起来很好。请记住,此Calendar字段取决于时区。

BTW:将起始大括号放在上一行的末尾,因为这是常见的代码格式化风格。

: - )