废话不多说直接上代码:
/**
* 判断某个时间 是否在 时间段之间
*
* 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"));
}
第一次发贴,看到的朋友 ,多多支持。和批评指正~