This is an automated email from the ASF dual-hosted git repository.

haonan pushed a commit to branch fix_date_parse
in repository https://gitbox.apache.org/repos/asf/tsfile.git

commit aa00d6ecf58ceaefd72440d59654a73aff764306
Author: HTHou <[email protected]>
AuthorDate: Tue Feb 18 17:58:29 2025 +0800

    Fix date string parse error
---
 .../src/main/java/org/apache/tsfile/utils/DateUtils.java       |  7 ++++---
 .../src/test/java/org/apache/tsfile/utils/DateUtilsTest.java   | 10 ++++++++++
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/java/tsfile/src/main/java/org/apache/tsfile/utils/DateUtils.java 
b/java/tsfile/src/main/java/org/apache/tsfile/utils/DateUtils.java
index 3dfc709f..dc531baa 100644
--- a/java/tsfile/src/main/java/org/apache/tsfile/utils/DateUtils.java
+++ b/java/tsfile/src/main/java/org/apache/tsfile/utils/DateUtils.java
@@ -27,7 +27,6 @@ import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeParseException;
 
 public class DateUtils {
-  private static final DateTimeFormatter DATE_FORMATTER = 
DateTimeFormatter.ofPattern("yyyy-MM-dd");
   public static final int EMPTY_DATE_INT = 10000101;
 
   public static String formatDate(int date) {
@@ -44,7 +43,7 @@ public class DateUtils {
     }
     LocalDate date;
     try {
-      date = LocalDate.parse(dateExpression, DATE_FORMATTER);
+      date = LocalDate.parse(dateExpression);
     } catch (DateTimeParseException e) {
       throw new DateTimeParseException(
           "Invalid date format. Please use YYYY-MM-DD format.", 
dateExpression, 0);
@@ -61,7 +60,9 @@ public class DateUtils {
     }
     if (localDate.getYear() < 1000 || localDate.getYear() > 9999) {
       throw new DateTimeParseException(
-          "Year must be between 1000 and 9999.", 
localDate.format(DATE_FORMATTER), 0);
+          "Year must be between 1000 and 9999.",
+          localDate.format(DateTimeFormatter.ISO_LOCAL_DATE),
+          0);
     }
     return localDate.getYear() * 10000
         + localDate.getMonthValue() * 100
diff --git 
a/java/tsfile/src/test/java/org/apache/tsfile/utils/DateUtilsTest.java 
b/java/tsfile/src/test/java/org/apache/tsfile/utils/DateUtilsTest.java
index 6154a3a9..27ee0520 100644
--- a/java/tsfile/src/test/java/org/apache/tsfile/utils/DateUtilsTest.java
+++ b/java/tsfile/src/test/java/org/apache/tsfile/utils/DateUtilsTest.java
@@ -54,6 +54,16 @@ public class DateUtilsTest {
         });
   }
 
+  @Test
+  public void testParseDateExpressionToInt_InvalidDate2() {
+    String dateExpression = "2023-04-31";
+    assertThrows(
+        DateTimeParseException.class,
+        () -> {
+          DateUtils.parseDateExpressionToInt(dateExpression);
+        });
+  }
+
   @Test
   public void testParseDateExpressionToInt_NullOrEmpty() {
     assertThrows(

Reply via email to