java 判断时间是否在时间段内 跨天
废话不多说直接上代码:
/** * 判断某个时间 是否在 时间段之间 * * startTimeStr endTimeStr 常见格式 * yyyy-MM-dd HH:mm:ss * yyyy-MM-dd * HH:mm:ss * yyyy-MM-dd HH:mm * * @param nowTime 当前时间 毫秒 * @param startTimeStr 开始时间 * @param endTimeStr 结束时间 * @return */ public static Boolean isBetweenTowTime(Long nowTime, String startTimeStr, String endTimeStr) { if (nowTime == null || StringUtils.isBlank(startTimeStr) || StringUtils.isBlank(endTimeStr)) { return null; } // 转时间 long startTime = DateUtil.parse(startTimeStr).getTime(); long endTime = DateUtil.parse(endTimeStr).getTime(); //跨天了 if (startTime > endTime) { long newEndTime = new DateTime(endTime).plusDays(1).toDate().getTime(); return nowTime >= startTime && nowTime <= newEndTime; } else { // 判断时间 return nowTime >= startTime && nowTime <= endTime; } }
实测当天场景和跨天场景均好用~ 测试代码如下:
public static void main(String[] agrs) { System.out.println(DateTimeUtil.isBetweenTowTime(System.currentTimeMillis(), "18:00", "22:00")); System.out.println(DateTimeUtil.isBetweenTowTime(System.currentTimeMillis(), "18:00", "02:00")); }
第一次发贴,看到的朋友 ,多多支持。和批评指正~