1)将当前时间转为和需要判断的时间区间相同格式的时间
例如判断当前时间是否在HH:mm的时间区间内(例时间区间0点到6点 [00:06])
StringstrStartTime = "0:00";
StringstrEndTime = "6:00";
当前时间需转为HH:mm的时间格式:
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
String now = sdf.format(new Date());
//HH:mm格式的当前时间
Date nowTime = sdf.parse(now);
//时间区间String转Date
Date startTime = sdf.parse(strStartTime);
Date endTime = sdf.parse(strEndTime);
2)调用isEffectiveDate(Date nowTime, Date startTime, Date endTime) 方法
在区间内返回true ,不在区间内返回false
代码如下:
/*** 判断当前时间是否在[startTime, endTime]区间,注意三个参数的时间格式要一致* @param nowTime* @param startTime* @param endTime* @return 在时间段内返回true,不在返回false*/public static boolean isEffectiveDate(Date nowTime, Date startTime, Date endTime) {if (nowTime.getTime() == startTime.getTime()|| nowTime.getTime() == endTime.getTime()) {return true;}Calendar date = Calendar.getInstance();date.setTime(nowTime);Calendar begin = Calendar.getInstance();begin.setTime(startTime);Calendar end = Calendar.getInstance();end.setTime(endTime);return date.after(begin) && date.before(end);}public static void main(String[] args) {/*** 判断当前时间是否在一个时间段内 HH:mm 格式*/String strStartTime1 = "00:00";String strEndTime1 = "6:00";SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");String now = sdf.format(new Date());Date nowTime;try{nowTime = sdf.parse(now);Date startTime1 = sdf.parse(strStartTime1);Date endTime1 = sdf.parse(strEndTime1);// 注:也可以通过此方式判断当前时间是否具体时间段内 yyyy-MM-dd HH:mm:ss格式 [-03-09 12:00:00,-03-10 15:00:00]// 当前时间和时间段的格式保持一致即可判断if (isEffectiveDate(nowTime, startTime1, endTime1)) {System.out.println("当前时间在时间段内["+strStartTime1+","+strEndTime1+"]");} else {System.out.println("当前时间不再时间段内["+strStartTime1+","+strEndTime1+"]");}}catch (Exception e){e.printStackTrace();}}
如果觉得《java时间处理--判断当前时间是否在一个时间区间内》对你有帮助,请点赞、收藏,并留下你的观点哦!