|
|
|
|
@ -7,6 +7,7 @@ import java.text.ParseException;
|
|
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
|
import java.time.*; |
|
|
|
|
import java.time.format.DateTimeFormatter; |
|
|
|
|
import java.time.temporal.ChronoUnit; |
|
|
|
|
import java.time.temporal.TemporalAdjusters; |
|
|
|
|
import java.util.Calendar; |
|
|
|
|
import java.util.Date; |
|
|
|
|
@ -89,9 +90,10 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static boolean isCurrentTimeInRange(Date startTimeStr, Date endTimeStr, Date curTime) { |
|
|
|
|
LocalTime startTime = convertDateToLocalTime(startTimeStr); |
|
|
|
|
LocalTime endTime = convertDateToLocalTime(endTimeStr); |
|
|
|
|
LocalTime currentTime = convertDateToLocalTime(curTime); |
|
|
|
|
// 截断到分钟,只比较时分,忽略秒
|
|
|
|
|
LocalTime startTime = convertDateToLocalTime(startTimeStr).truncatedTo(ChronoUnit.MINUTES); |
|
|
|
|
LocalTime endTime = convertDateToLocalTime(endTimeStr).truncatedTo(ChronoUnit.MINUTES); |
|
|
|
|
LocalTime currentTime = convertDateToLocalTime(curTime).truncatedTo(ChronoUnit.MINUTES); |
|
|
|
|
|
|
|
|
|
if (startTime.equals(endTime)) { |
|
|
|
|
// 开始和结束时间相同,视为全天范围内
|
|
|
|
|
@ -100,11 +102,18 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
|
|
|
|
|
// 时间段不跨天,判断当前时间是否在[startTime, endTime]区间内
|
|
|
|
|
return !currentTime.isBefore(startTime) && !currentTime.isAfter(endTime); |
|
|
|
|
} else { |
|
|
|
|
// 时间段跨天,判断当前时间是否在[startTime, 23:59:59.999999999]或[00:00:00, endTime]
|
|
|
|
|
// 时间段跨天,判断当前时间是否在[startTime, 23:59]或[00:00, endTime]
|
|
|
|
|
return !currentTime.isBefore(startTime) || !currentTime.isAfter(endTime); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static void main(String[] args) { |
|
|
|
|
Date startTime = DateUtils.parseDate("2026-07-10 11:00:00"); |
|
|
|
|
Date endTime = DateUtils.parseDate("2026-07-10 14:00:00"); |
|
|
|
|
System.out.println(isCurrentTimeInRange(startTime, endTime, new Date())); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 获取当前Date型日期 |
|
|
|
|
* |
|
|
|
|
|