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

wuchunfu pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new 97191c54b6 [Fix] Fix `DateUtils` can not parse datetime string with 
local timezone (#9019)
97191c54b6 is described below

commit 97191c54b6495a4f12a09ebdf2d95fee6ef2232b
Author: Jia Fan <[email protected]>
AuthorDate: Mon Apr 7 15:35:23 2025 +0800

    [Fix] Fix `DateUtils` can not parse datetime string with local timezone 
(#9019)
---
 .../org/apache/seatunnel/common/utils/DateUtils.java    |  2 +-
 .../apache/seatunnel/common/utils/DateUtilsTest.java    | 17 +++++++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git 
a/seatunnel-common/src/main/java/org/apache/seatunnel/common/utils/DateUtils.java
 
b/seatunnel-common/src/main/java/org/apache/seatunnel/common/utils/DateUtils.java
index 3fc4af909a..04105cfdf8 100644
--- 
a/seatunnel-common/src/main/java/org/apache/seatunnel/common/utils/DateUtils.java
+++ 
b/seatunnel-common/src/main/java/org/apache/seatunnel/common/utils/DateUtils.java
@@ -57,7 +57,7 @@ public class DateUtils {
                 Pattern.compile("\\d{4}/\\d{2}/\\d{2}"),
                 Pattern.compile("\\d{4}\\.\\d{2}\\.\\d{2}"),
                 Pattern.compile("\\d{8}"),
-                
Pattern.compile("\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,9})?Z"),
+                
Pattern.compile("\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,9})?Z?"),
                 Pattern.compile("\\d{2}:\\d{2}:\\d{2}\\+\\d{2}:\\d{2}"),
                 Pattern.compile("\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,9})?"),
                 Pattern.compile("\\d{4}/\\d{1,2}/\\d{1,2}")
diff --git 
a/seatunnel-common/src/test/java/org/apache/seatunnel/common/utils/DateUtilsTest.java
 
b/seatunnel-common/src/test/java/org/apache/seatunnel/common/utils/DateUtilsTest.java
index 7e4c3c58c9..9a18a4965e 100644
--- 
a/seatunnel-common/src/test/java/org/apache/seatunnel/common/utils/DateUtilsTest.java
+++ 
b/seatunnel-common/src/test/java/org/apache/seatunnel/common/utils/DateUtilsTest.java
@@ -20,6 +20,12 @@ package org.apache.seatunnel.common.utils;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.temporal.TemporalAccessor;
+import java.time.temporal.TemporalQueries;
+
 public class DateUtilsTest {
 
     @Test
@@ -79,4 +85,15 @@ public class DateUtilsTest {
                 "2024-01-10",
                 DateUtils.parse(datetimeStr, 
DateUtils.matchDateFormatter(datetimeStr)).toString());
     }
+
+    @Test
+    public void testConvertDateTimeWithLocalTimeZone() {
+        String datetimeStr = "2024-12-16T15:33:45";
+        TemporalAccessor parsedTimestamp =
+                DateUtils.matchDateFormatter(datetimeStr).parse(datetimeStr);
+        LocalTime localTime = 
parsedTimestamp.query(TemporalQueries.localTime());
+        LocalDate localDate = 
parsedTimestamp.query(TemporalQueries.localDate());
+        LocalDateTime dateTime = LocalDateTime.of(localDate, localTime);
+        Assertions.assertEquals("2024-12-16T15:33:45", dateTime.toString());
+    }
 }

Reply via email to