项目新增需求需要在每天指定的4个时间段给用户提示参加活动,当前时间为服务段返回的.
当天的很简单,直接对比两个时间(long型)大小就可以了,但是要求是每天都要执行.因此就需要针对时间戳进行字符转换和
截取操作后进行比较了,初开始分别对时分秒进行截取依次比较,也能实现,但发现判断起来太麻烦了,后来想想其实可以整体一起截取
然后转成整型再比较大小更简洁,特此记录下:
/**
* 判断时间是否在时间段内
*
* @param date
* 当前时间 yyyy-MM-dd HH:mm:ss
* @param strDateBegin
* 开始时间 00:00:00
* @param strDateEnd
* 结束时间 00:05:00
* @return
*/
public static boolean isInDate(Date date, String strDateBegin,String strDateEnd) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",Locale.ENGLISH);
String strDate = sdf.format(date); //2016-12-16 11:53:54
// 截取当前时间时分秒 转成整型
int tempDate=Integer.parseInt(strDate.substring(11, 13)+strDate.substring(14, 16)+strDate.substring(17, 19));
// 截取开始时间时分秒 转成整型
int tempDateBegin=Integer.parseInt(strDateBegin.substring(0, 2)+strDateBegin.substring(3, 5)+strDateBegin.substring(6, 8));
// 截取结束时间时分秒 转成整型
int tempDateEnd=Integer.parseInt(strDateEnd.substring(0, 2)+strDateEnd.substring(3, 5)+strDateEnd.substring(6, 8));
if ((tempDate >= tempDateBegin && tempDate <= tempDateEnd)) {
return true;
} else {
return false;
}
}