This commit is contained in:
Van0313
2025-06-19 01:30:17 +08:00
parent 1e035a7b41
commit d4c8054c94

View File

@@ -44,6 +44,7 @@ import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
@@ -2068,30 +2069,43 @@ public class JDUtil {
private Date orderDate;
}
public List<LocalDate> getDateFromLD(String dateStr) {
ArrayList<LocalDate> dateArrayList = new ArrayList<>();
logger.info("开始解析日期 {}", dateStr);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
// 检查是否包含连字符(日期范围)
if (dateStr.contains("-")) {
String[] dates = dateStr.split("-");
for (String date : dates) {
dateArrayList.addAll(getDateFromLD(date));
if (dates.length == 2) { // 确保是合法的范围格式
try {
LocalDate startDate = LocalDate.parse(dates[0], formatter);
LocalDate endDate = LocalDate.parse(dates[1], formatter);
dateArrayList.add(startDate);
dateArrayList.add(endDate);
logger.info("成功解析日期范围: {} 到 {}", startDate, endDate);
} catch (DateTimeParseException e) {
logger.error("日期范围解析失败: {}", dateStr, e);
// 可选择返回空列表或抛出异常
}
} else {
logger.warn("日期范围格式不合法: {}", dateStr);
// 处理格式错误,例如只返回第一个有效日期
}
return dateArrayList;
} else {
// 定义支持的日期格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
// 解析日期字符串为 LocalDate 对象
LocalDate date = LocalDate.parse(dateStr, formatter);
// 成功解析后,可执行后续操作(例如业务逻辑)
logger.info("成功解析日期: {}", date);
dateArrayList.add(date);
return dateArrayList;
// 处理单个日期
try {
LocalDate date = LocalDate.parse(dateStr, formatter);
dateArrayList.add(date);
logger.info("成功解析日期: {}", date);
} catch (DateTimeParseException e) {
logger.error("日期解析失败: {}", dateStr, e);
}
}
return dateArrayList;
}
public static LocalDateTime getEffectiveToday() {
LocalDateTime now = LocalDateTime.now();
if (now.getHour() < 8) {