Skip to content

Commit dbe2e3c

Browse files
committed
♻️ refactor: update codebase #3
1 parent b8d288c commit dbe2e3c

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

plugin/src/main/groovy/org/unify4j/common/Time4j.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@
1111
import java.text.SimpleDateFormat;
1212
import java.time.*;
1313
import java.time.format.DateTimeFormatter;
14+
import java.time.format.DateTimeFormatterBuilder;
1415
import java.time.format.DateTimeParseException;
1516
import java.time.format.TextStyle;
17+
import java.time.temporal.ChronoField;
1618
import java.time.temporal.TemporalAdjusters;
1719
import java.util.*;
1820
import java.util.concurrent.TimeUnit;
@@ -1164,7 +1166,12 @@ public static String formatToUTC(String dateTimeStr, String sourceZoneId, List<S
11641166

11651167
// Try each format to parse the input date-time string
11661168
for (String format : formats) {
1167-
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
1169+
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
1170+
.appendPattern(format)
1171+
.optionalStart()
1172+
.appendFraction(ChronoField.NANO_OF_SECOND, 0, 9, true) // Handles fractional seconds with varying lengths
1173+
.optionalEnd()
1174+
.toFormatter();
11681175
try {
11691176
locality = LocalDateTime.parse(dateTimeStr, formatter);
11701177
// Convert LocalDateTime to ZonedDateTime in the source time zone

0 commit comments

Comments
 (0)