diff --git a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrowUtils.java b/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrowUtils.java index dc79f6efff3..3de19000e4e 100644 --- a/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrowUtils.java +++ b/java/adapter/jdbc/src/main/java/org/apache/arrow/adapter/jdbc/JdbcToArrowUtils.java @@ -188,12 +188,9 @@ public static ArrowType getArrowTypeFromJdbcType(final JdbcFieldInfo fieldInfo, case Types.TIME: return new ArrowType.Time(TimeUnit.MILLISECOND, 32); case Types.TIMESTAMP: - final String timezone; - if (calendar != null) { - timezone = calendar.getTimeZone().getID(); - } else { - timezone = null; - } + return new ArrowType.Timestamp(TimeUnit.MILLISECOND, null); + case Types.TIMESTAMP_WITH_TIMEZONE: + final String timezone = calendar == null ? null : calendar.getTimeZone().getID(); return new ArrowType.Timestamp(TimeUnit.MILLISECOND, timezone); case Types.BINARY: case Types.VARBINARY: @@ -473,7 +470,7 @@ static JdbcConsumer getConsumer(ArrowType arrowType, int columnIndex, boolean nu case Time: return TimeConsumer.createConsumer((TimeMilliVector) vector, columnIndex, nullable, calendar); case Timestamp: - if (config.getCalendar() == null) { + if (((ArrowType.Timestamp) arrowType).getTimezone() == null) { return TimestampConsumer.createConsumer((TimeStampMilliVector) vector, columnIndex, nullable); } else { return TimestampTZConsumer.createConsumer((TimeStampMilliTZVector) vector, columnIndex, nullable, calendar);