Skip to content

Commit d3028f1

Browse files
committed
use TimeZoneCache
1 parent 78ab248 commit d3028f1

4 files changed

Lines changed: 6 additions & 7 deletions

File tree

java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercionUtility.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import java.time.ZoneOffset;
3535
import java.time.format.DateTimeFormatter;
3636
import java.time.temporal.ChronoUnit;
37-
import java.util.TimeZone;
3837
import java.util.concurrent.TimeUnit;
3938
import org.apache.arrow.vector.PeriodDuration;
4039
import org.apache.arrow.vector.util.Text;
@@ -116,7 +115,7 @@ class BigQueryTypeCoercionUtility {
116115
// Custom conversion is used to preserve sub-second (millisecond) precision,
117116
// as standard java.sql.Time.toLocalTime() truncates milliseconds.
118117
long millis = time.getTime();
119-
long localMillis = millis + TimeZone.getDefault().getOffset(millis);
118+
long localMillis = millis + TimeZoneCache.getOffset(millis);
120119
return LocalTime.ofNanoOfDay(TimeUnit.MILLISECONDS.toNanos(localMillis));
121120
},
122121
Time.class,

java-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/TimeZoneCache.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,8 @@ public static void reset() {
3030
public static long getLocalMillis(long millisOfDay) {
3131
return millisOfDay - defaultTimeZone.getOffset(millisOfDay);
3232
}
33+
34+
public static int getOffset(long millis) {
35+
return defaultTimeZone.getOffset(millis);
36+
}
3337
}

java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowResultSetTest.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import com.google.cloud.bigquery.Schema;
3131
import com.google.cloud.bigquery.StandardSQLTypeName;
3232
import com.google.cloud.bigquery.jdbc.rules.TimeZoneRule;
33-
import org.junit.jupiter.api.extension.RegisterExtension;
3433
import com.google.cloud.bigquery.storage.v1.ArrowRecordBatch;
3534
import com.google.cloud.bigquery.storage.v1.ArrowSchema;
3635
import com.google.common.collect.ImmutableList;
@@ -47,7 +46,6 @@
4746
import java.time.LocalDateTime;
4847
import java.time.LocalTime;
4948
import java.util.Arrays;
50-
import java.util.Calendar;
5149
import java.util.List;
5250
import java.util.TimeZone;
5351
import java.util.concurrent.BlockingQueue;
@@ -72,6 +70,7 @@
7270
import org.apache.arrow.vector.util.Text;
7371
import org.junit.jupiter.api.BeforeEach;
7472
import org.junit.jupiter.api.Test;
73+
import org.junit.jupiter.api.extension.RegisterExtension;
7574
import org.junit.jupiter.params.ParameterizedTest;
7675
import org.junit.jupiter.params.provider.Arguments;
7776
import org.junit.jupiter.params.provider.MethodSource;
@@ -429,7 +428,6 @@ public void testGetObjectWithType_failure(Object column, Class<?> type) throws S
429428
}
430429
}
431430

432-
433431
private int resultSetRowCount(BigQueryArrowResultSet resultSet) throws SQLException {
434432
int rowCount = 0;
435433
while (resultSet.next()) {

java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonResultSetTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@
5151
import java.time.LocalDate;
5252
import java.time.LocalDateTime;
5353
import java.time.LocalTime;
54-
import java.util.Calendar;
5554
import java.util.TimeZone;
5655
import java.util.concurrent.BlockingQueue;
5756
import java.util.concurrent.LinkedBlockingDeque;
@@ -441,7 +440,6 @@ public void testIterationNested() throws SQLException {
441440
assertThat(bigQueryJsonResultSetNested.isAfterLast()).isTrue();
442441
}
443442

444-
445443
public static Stream<Arguments> successfulCoercionCases() {
446444
return Stream.of(
447445
Arguments.of("fourteenth", LocalDate.class, LocalDate.of(2020, 1, 15)),

0 commit comments

Comments
 (0)