废话不多说直接上代码:
/**
* 判断某个时间 是否在 时间段之间
*
* 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"));
}
第一次发贴,看到的朋友 ,多多支持。和批评指正~
该代码段提供了一个Java方法,用于判断当前时间是否在给定的开始和结束时间之间,支持不同格式的时间字符串。方法处理了跨天的情况,并提供了测试用例证明其功能正常。
7338

被折叠的 条评论
为什么被折叠?



