传入两个时间,如:10:22:00
private boolean compTime(String s1, String s2){
try {
if (s1.indexOf(":") < 0 || s2.indexOf(":") < 0) {
System.out.println("格式不正确");
} else {
String[] array1 = s1.split(":");
int total1 = Integer.valueOf(array1[0]) * 3600 + Integer.valueOf(array1[1]) * 60 + Integer.valueOf(array1[2]);
String[] array2 = s2.split(":");
int total2 = Integer.valueOf(array2[0]) * 3600 + Integer.valueOf(array2[1]) * 60 + Integer.valueOf(array2[2]);
return total1 - total2 > 0 ? true : false;
}
} catch (NumberFormatException e) {
return true;
}
}
获取当前的时间时分秒并转化
String startTime1 = "10:00:00"
String endTime1 = "12:00:00";
//当前时间 时分秒
GregorianCalendar calendar = new GregorianCalendar();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
String hour_str=String.valueOf(hour);
String minute_str=String.valueOf(minute);
String second_str=String.valueOf(second);
String nowTime=hour_str+":"+minute_str+":"+second_str;
boolean startT= compTime(nowTime, startTime1);
boolean endT= compTime(nowTime, endTime1);
if(!(startT&&!endT)){
System.out.println("当前时间不符合要求");
}
如果 数据库时间的类型为字符串的话 也可以使用sql来完成区间查询
SELECT
*
FROM
tb_activity_seckill_time
WHERE
date_format( now(), '%T' ) BETWEEN start_time AND end_time
AND is_deleted = 0
可以根据自己的业务需求进行调整