例子:验证当前时间是否在08:00--18:00这个时间段内
思路:利用Date类型的 after、before方法实现,截取当前时间的HH:mm 字符串数据,然后采用一样的方法转化为date类型进行比较,这样比较的准确度比较高
代码:
/**
* 判断当前时间是否在[startTime, endTime]区间,注意时间格式要一致
*
* @param now 当前时间
* @param startTime 开始时间段
* @param endTime 结束时间段
* @return
* @author jqlin
*/
public static boolean isEffectiveDate(Date now, String startTime, String endTime) throws ParseException {
String format = "HH:mm";
SimpleDateFormat sdf = new SimpleDateFormat(format);
String nowtTime = sdf.format(now);
Date nowDate = sdf.parse(nowtTime);
Date startDate = sdf.parse(startTime);
Date endDate = sdf.parse(endTime);
if (nowDate.getTime() == startDate.getTime()
|| nowDate.getTime() == endDate.getTime()) {
return true;
}
Calendar date = Calendar.getInstance();
date.setTime(nowDate);
Calendar begin = Calendar.getInstance();
begin.setTime(startDate);
Calendar end = Calendar.getInstance();
end.setTime(endDate);
if (date.after(begin) && date.before(end)) {
return true;
} else {
return false;
}
}