(improvement)(common)Support more date string formats.

This commit is contained in:
supersonicbi
2025-05-06 15:56:03 +08:00
parent e812884802
commit 2b13866c0b
3 changed files with 24 additions and 12 deletions

View File

@@ -36,9 +36,9 @@ public class ChatModelParameters {
new Parameter("timeOut", "60", "超时时间(秒)", "", "number", MODULE_NAME); new Parameter("timeOut", "60", "超时时间(秒)", "", "number", MODULE_NAME);
public static List<Parameter> getParameters() { public static List<Parameter> getParameters() {
return Lists.newArrayList(CHAT_MODEL_PROVIDER, CHAT_MODEL_BASE_URL, return Lists.newArrayList(CHAT_MODEL_PROVIDER, CHAT_MODEL_BASE_URL, CHAT_MODEL_API_KEY,
CHAT_MODEL_API_KEY, CHAT_MODEL_NAME, CHAT_MODEL_API_VERSION, CHAT_MODEL_NAME, CHAT_MODEL_API_VERSION, CHAT_MODEL_TEMPERATURE,
CHAT_MODEL_TEMPERATURE, CHAT_MODEL_TIMEOUT); CHAT_MODEL_TIMEOUT);
} }
private static List<String> getCandidateProviders() { private static List<String> getCandidateProviders() {

View File

@@ -242,10 +242,8 @@ public class DateModeUtils {
return String.format("%s >= '%s' and %s <= '%s'", dateField, return String.format("%s >= '%s' and %s <= '%s'", dateField,
dateInfo.getStartDate(), dateField, dateInfo.getEndDate()); dateInfo.getStartDate(), dateField, dateInfo.getEndDate());
} }
LocalDate endData = LocalDate endData = DateUtils.parseDate(dateInfo.getEndDate());
LocalDate.parse(dateInfo.getEndDate(), DateTimeFormatter.ofPattern(DAY_FORMAT)); LocalDate startData = DateUtils.parseDate(dateInfo.getStartDate());
LocalDate startData = LocalDate.parse(dateInfo.getStartDate(),
DateTimeFormatter.ofPattern(DAY_FORMAT));
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(MONTH_FORMAT); DateTimeFormatter formatter = DateTimeFormatter.ofPattern(MONTH_FORMAT);
return String.format("%s >= '%s' and %s <= '%s'", dateField, return String.format("%s >= '%s' and %s <= '%s'", dateField,
startData.format(formatter), dateField, endData.format(formatter)); startData.format(formatter), dateField, endData.format(formatter));

View File

@@ -75,7 +75,7 @@ public class DateUtils {
} }
public static String getBeforeDate(String currentDate, DatePeriodEnum datePeriodEnum) { public static String getBeforeDate(String currentDate, DatePeriodEnum datePeriodEnum) {
LocalDate specifiedDate = LocalDate.parse(currentDate, DEFAULT_DATE_FORMATTER2); LocalDate specifiedDate = parseDate(currentDate);
LocalDate startDate; LocalDate startDate;
switch (datePeriodEnum) { switch (datePeriodEnum) {
case MONTH: case MONTH:
@@ -93,7 +93,7 @@ public class DateUtils {
public static String getBeforeDate(String currentDate, int intervalDay, public static String getBeforeDate(String currentDate, int intervalDay,
DatePeriodEnum datePeriodEnum) { DatePeriodEnum datePeriodEnum) {
LocalDate specifiedDate = LocalDate.parse(currentDate, DEFAULT_DATE_FORMATTER2); LocalDate specifiedDate = parseDate(currentDate);
LocalDate result = null; LocalDate result = null;
switch (datePeriodEnum) { switch (datePeriodEnum) {
case DAY: case DAY:
@@ -161,11 +161,25 @@ public class DateUtils {
return !timeString.equals("00:00:00"); 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<String> getDateList(String startDateStr, String endDateStr, public static List<String> getDateList(String startDateStr, String endDateStr,
DatePeriodEnum period) { DatePeriodEnum period) {
try { try {
LocalDate startDate = LocalDate.parse(startDateStr); LocalDate startDate = parseDate(startDateStr);
LocalDate endDate = LocalDate.parse(endDateStr); LocalDate endDate = parseDate(endDateStr);
List<String> datesInRange = new ArrayList<>(); List<String> datesInRange = new ArrayList<>();
LocalDate currentDate = startDate; LocalDate currentDate = startDate;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
@@ -189,7 +203,7 @@ public class DateUtils {
} }
public static boolean isAnyDateString(String value) { public static boolean isAnyDateString(String value) {
List<String> formats = Arrays.asList("yyyy-MM-dd", "yyyy-MM", "yyyy/MM/dd"); List<String> formats = Arrays.asList("yyyy-MM-dd", "yyyy-MM", "yyyy/MM/dd", "yyyyMMdd");
return isAnyDateString(value, formats); return isAnyDateString(value, formats);
} }