From 7ee339a754e22117459713802d4ba595dbf547b2 Mon Sep 17 00:00:00 2001 From: kimminseok Date: Sun, 26 Oct 2025 22:09:47 +0900 Subject: [PATCH] Extract timezone offset calculation to helper method --- .../java/tech/turso/jdbc4/JDBC4ResultSet.java | 36 +++++-------------- 1 file changed, 9 insertions(+), 27 deletions(-) diff --git a/bindings/java/src/main/java/tech/turso/jdbc4/JDBC4ResultSet.java b/bindings/java/src/main/java/tech/turso/jdbc4/JDBC4ResultSet.java index d106fdd7e..b10e28be5 100644 --- a/bindings/java/src/main/java/tech/turso/jdbc4/JDBC4ResultSet.java +++ b/bindings/java/src/main/java/tech/turso/jdbc4/JDBC4ResultSet.java @@ -838,15 +838,7 @@ public final class JDBC4ResultSet implements ResultSet, ResultSetMetaData { if (date == null || cal == null) { return date; } - - final Calendar localCal = Calendar.getInstance(); - localCal.setTime(date); - - final long offset = - cal.getTimeZone().getOffset(date.getTime()) - - localCal.getTimeZone().getOffset(date.getTime()); - - return new Date(date.getTime() + offset); + return new Date(date.getTime() + calculateTimezoneOffset(date.getTime(), cal)); } @Override @@ -862,15 +854,7 @@ public final class JDBC4ResultSet implements ResultSet, ResultSetMetaData { if (time == null || cal == null) { return time; } - - final Calendar localCal = Calendar.getInstance(); - localCal.setTime(time); - - final long offset = - cal.getTimeZone().getOffset(time.getTime()) - - localCal.getTimeZone().getOffset(time.getTime()); - - return new Time(time.getTime() + offset); + return new Time(time.getTime() + calculateTimezoneOffset(time.getTime(), cal)); } @Override @@ -886,15 +870,7 @@ public final class JDBC4ResultSet implements ResultSet, ResultSetMetaData { if (timestamp == null || cal == null) { return timestamp; } - - final Calendar localCal = Calendar.getInstance(); - localCal.setTime(timestamp); - - final long offset = - cal.getTimeZone().getOffset(timestamp.getTime()) - - localCal.getTimeZone().getOffset(timestamp.getTime()); - - return new Timestamp(timestamp.getTime() + offset); + return new Timestamp(timestamp.getTime() + calculateTimezoneOffset(timestamp.getTime(), cal)); } @Override @@ -1342,6 +1318,12 @@ public final class JDBC4ResultSet implements ResultSet, ResultSetMetaData { throw new UnsupportedOperationException("not implemented"); } + private long calculateTimezoneOffset(long timeMillis, Calendar targetCal) { + Calendar localCal = Calendar.getInstance(); + return targetCal.getTimeZone().getOffset(timeMillis) + - localCal.getTimeZone().getOffset(timeMillis); + } + @FunctionalInterface public interface ResultSetSupplier { T get() throws Exception;