直接上代码
date:需要判断的时间
startHour:区间起始时间
endHour:区间结束时间
区间内返回true,区间外返回false
public static boolean judgeTime(Date date,int startHour,int endHour) {
LocalDateTime now = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
log.info("当前时间:{}", now);
// 开始时间:23点
LocalTime startTime = LocalTime.of(startHour, 0, 0);
log.info("开始时间:{}", startTime);
// 结束时间:次日7点
LocalTime endTime = LocalTime.of(endHour, 0,0);
log.info("结束时间:{}", endTime);
if (startTime.isBefore(endTime)){
// 不跨天
return now.toLocalTime().isAfter(startTime) && now.toLocalTime().isBefore(endTime);
}else {
// 跨天
return now.toLocalTime().isAfter(startTime) || now.toLocalTime().isBefore(endTime);
}
}