1)将当前时间转为和需要判断的时间区间相同格式的时间
例如判断当前时间是否在HH:mm的时间区间内(例时间区间0点到6点 [00:06])
String strStartTime = "0:00";
String strEndTime = "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格式 [2022-03-09 12:00:00,2022-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(); } }
相关文章
暂无评论...