Skip to content

Commit 0028cdb

Browse files
committed
Added base Calendar implementation
1 parent 914b648 commit 0028cdb

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

jdbc/src/main/java/tech/ydb/jdbc/impl/YdbResultSetImpl.java

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -463,8 +463,13 @@ public Date getDate(int columnIndex, Calendar cal) throws SQLException {
463463
if (instant == null) {
464464
return null;
465465
}
466-
final TimeZone tz = cal != null ? cal.getTimeZone() : Calendar.getInstance().getTimeZone();
467-
return Date.valueOf(instant.atZone(tz.toZoneId()).toLocalDate());
466+
467+
if (state.description.isTimestamp()) {
468+
final TimeZone tz = cal != null ? cal.getTimeZone() : Calendar.getInstance().getTimeZone();
469+
return Date.valueOf(instant.atZone(tz.toZoneId()).toLocalDate());
470+
}
471+
472+
return Date.valueOf(instant.atOffset(ZoneOffset.UTC).toLocalDate());
468473
}
469474

470475
@Override
@@ -478,8 +483,13 @@ public Time getTime(int columnIndex, Calendar cal) throws SQLException {
478483
if (instant == null) {
479484
return null;
480485
}
481-
final TimeZone tz = cal != null ? cal.getTimeZone() : Calendar.getInstance().getTimeZone();
482-
return Time.valueOf(instant.atZone(tz.toZoneId()).toLocalTime());
486+
487+
if (state.description.isTimestamp()) {
488+
final TimeZone tz = cal != null ? cal.getTimeZone() : Calendar.getInstance().getTimeZone();
489+
return Time.valueOf(instant.atZone(tz.toZoneId()).toLocalTime());
490+
}
491+
492+
return Time.valueOf(instant.atOffset(ZoneOffset.UTC).toLocalTime());
483493
}
484494

485495
@Override
@@ -493,8 +503,13 @@ public Timestamp getTimestamp(int columnIndex, Calendar cal) throws SQLException
493503
if (instant == null) {
494504
return null;
495505
}
496-
final TimeZone tz = cal != null ? cal.getTimeZone() : Calendar.getInstance().getTimeZone();
497-
return Timestamp.valueOf(instant.atZone(tz.toZoneId()).toLocalDateTime());
506+
507+
if (state.description.isTimestamp()) {
508+
final TimeZone tz = cal != null ? cal.getTimeZone() : Calendar.getInstance().getTimeZone();
509+
return Timestamp.valueOf(instant.atZone(tz.toZoneId()).toLocalDateTime());
510+
}
511+
512+
return Timestamp.valueOf(instant.atOffset(ZoneOffset.UTC).toLocalDateTime());
498513
}
499514

500515
@Override

0 commit comments

Comments
 (0)