From 2b13866c0b5d38c354d66d8b2f489c23c64f6666 Mon Sep 17 00:00:00 2001 From: supersonicbi <15744192+supersonicbi@user.noreply.gitee.com> Date: Tue, 6 May 2025 15:56:03 +0800 Subject: [PATCH] (improvement)(common)Support more date string formats. --- .../common/pojo/ChatModelParameters.java | 6 ++--- .../supersonic/common/util/DateModeUtils.java | 6 ++--- .../supersonic/common/util/DateUtils.java | 24 +++++++++++++++---- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/common/src/main/java/com/tencent/supersonic/common/pojo/ChatModelParameters.java b/common/src/main/java/com/tencent/supersonic/common/pojo/ChatModelParameters.java index 19b8bdb8c..9082fb375 100644 --- a/common/src/main/java/com/tencent/supersonic/common/pojo/ChatModelParameters.java +++ b/common/src/main/java/com/tencent/supersonic/common/pojo/ChatModelParameters.java @@ -36,9 +36,9 @@ public class ChatModelParameters { new Parameter("timeOut", "60", "超时时间(秒)", "", "number", MODULE_NAME); public static List getParameters() { - return Lists.newArrayList(CHAT_MODEL_PROVIDER, CHAT_MODEL_BASE_URL, - CHAT_MODEL_API_KEY, CHAT_MODEL_NAME, CHAT_MODEL_API_VERSION, - CHAT_MODEL_TEMPERATURE, CHAT_MODEL_TIMEOUT); + return Lists.newArrayList(CHAT_MODEL_PROVIDER, CHAT_MODEL_BASE_URL, CHAT_MODEL_API_KEY, + CHAT_MODEL_NAME, CHAT_MODEL_API_VERSION, CHAT_MODEL_TEMPERATURE, + CHAT_MODEL_TIMEOUT); } private static List getCandidateProviders() { diff --git a/common/src/main/java/com/tencent/supersonic/common/util/DateModeUtils.java b/common/src/main/java/com/tencent/supersonic/common/util/DateModeUtils.java index 1cd84cfee..541028459 100644 --- a/common/src/main/java/com/tencent/supersonic/common/util/DateModeUtils.java +++ b/common/src/main/java/com/tencent/supersonic/common/util/DateModeUtils.java @@ -242,10 +242,8 @@ public class DateModeUtils { return String.format("%s >= '%s' and %s <= '%s'", dateField, dateInfo.getStartDate(), dateField, dateInfo.getEndDate()); } - LocalDate endData = - LocalDate.parse(dateInfo.getEndDate(), DateTimeFormatter.ofPattern(DAY_FORMAT)); - LocalDate startData = LocalDate.parse(dateInfo.getStartDate(), - DateTimeFormatter.ofPattern(DAY_FORMAT)); + LocalDate endData = DateUtils.parseDate(dateInfo.getEndDate()); + LocalDate startData = DateUtils.parseDate(dateInfo.getStartDate()); DateTimeFormatter formatter = DateTimeFormatter.ofPattern(MONTH_FORMAT); return String.format("%s >= '%s' and %s <= '%s'", dateField, startData.format(formatter), dateField, endData.format(formatter)); diff --git a/common/src/main/java/com/tencent/supersonic/common/util/DateUtils.java b/common/src/main/java/com/tencent/supersonic/common/util/DateUtils.java index 5ab669aa4..2a4e1a585 100644 --- a/common/src/main/java/com/tencent/supersonic/common/util/DateUtils.java +++ b/common/src/main/java/com/tencent/supersonic/common/util/DateUtils.java @@ -75,7 +75,7 @@ public class DateUtils { } public static String getBeforeDate(String currentDate, DatePeriodEnum datePeriodEnum) { - LocalDate specifiedDate = LocalDate.parse(currentDate, DEFAULT_DATE_FORMATTER2); + LocalDate specifiedDate = parseDate(currentDate); LocalDate startDate; switch (datePeriodEnum) { case MONTH: @@ -93,7 +93,7 @@ public class DateUtils { public static String getBeforeDate(String currentDate, int intervalDay, DatePeriodEnum datePeriodEnum) { - LocalDate specifiedDate = LocalDate.parse(currentDate, DEFAULT_DATE_FORMATTER2); + LocalDate specifiedDate = parseDate(currentDate); LocalDate result = null; switch (datePeriodEnum) { case DAY: @@ -161,11 +161,25 @@ public class DateUtils { return !timeString.equals("00:00:00"); } + public static LocalDate parseDate(String timeString) { + DateTimeFormatter[] dateFormatters = + {DateTimeFormatter.ofPattern("yyyyMMdd"), DateTimeFormatter.ofPattern("yyyy-MM-dd"), + DateTimeFormatter.ofPattern("yyyy/MM/dd"), + DateTimeFormatter.ofPattern("yyyy-MM")}; + for (DateTimeFormatter formatter : dateFormatters) { + try { + return LocalDate.parse(timeString, formatter); + } catch (DateTimeParseException ignored) { + } + } + return null; + } + public static List getDateList(String startDateStr, String endDateStr, DatePeriodEnum period) { try { - LocalDate startDate = LocalDate.parse(startDateStr); - LocalDate endDate = LocalDate.parse(endDateStr); + LocalDate startDate = parseDate(startDateStr); + LocalDate endDate = parseDate(endDateStr); List datesInRange = new ArrayList<>(); LocalDate currentDate = startDate; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM"); @@ -189,7 +203,7 @@ public class DateUtils { } public static boolean isAnyDateString(String value) { - List formats = Arrays.asList("yyyy-MM-dd", "yyyy-MM", "yyyy/MM/dd"); + List formats = Arrays.asList("yyyy-MM-dd", "yyyy-MM", "yyyy/MM/dd", "yyyyMMdd"); return isAnyDateString(value, formats); }