diff --git a/core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/TimeZoneHoursCompiledPattern.java b/core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/TimeZoneHoursCompiledPattern.java index 38a015c7f4b..60dc1737921 100644 --- a/core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/TimeZoneHoursCompiledPattern.java +++ b/core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/TimeZoneHoursCompiledPattern.java @@ -22,7 +22,6 @@ import java.text.ParseException; import java.text.ParsePosition; import java.time.ZonedDateTime; -import java.time.temporal.ChronoField; import java.util.Locale; import java.util.Set; @@ -40,7 +39,7 @@ public TimeZoneHoursCompiledPattern(Set modifiers) { return String.format( Locale.ROOT, "%+02d", - dateTime.getOffset().get(ChronoField.OFFSET_SECONDS) / 3600); + dateTime.getOffset().getTotalSeconds() / 3600); } @Override public int parseValue(ParsePosition inputPosition, String input, boolean enforceLength, diff --git a/core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/TimeZoneMinutesCompiledPattern.java b/core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/TimeZoneMinutesCompiledPattern.java index 5d2585302f5..36c219b4d2a 100644 --- a/core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/TimeZoneMinutesCompiledPattern.java +++ b/core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/TimeZoneMinutesCompiledPattern.java @@ -22,7 +22,6 @@ import java.text.ParseException; import java.text.ParsePosition; import java.time.ZonedDateTime; -import java.time.temporal.ChronoField; import java.util.Locale; import java.util.Set; @@ -40,7 +39,7 @@ public TimeZoneMinutesCompiledPattern(Set modifiers) { return String.format( Locale.ROOT, "%02d", - (dateTime.getOffset().get(ChronoField.OFFSET_SECONDS) % 3600) / 60); + (dateTime.getOffset().getTotalSeconds() % 3600) / 60); } @Override public int parseValue(ParsePosition inputPosition, String input, boolean enforceLength, diff --git a/core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/TimeZoneOffsetCompiledPattern.java b/core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/TimeZoneOffsetCompiledPattern.java index a8ea63c5a50..c75bf5cc0b0 100644 --- a/core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/TimeZoneOffsetCompiledPattern.java +++ b/core/src/main/java/org/apache/calcite/util/format/postgresql/format/compiled/TimeZoneOffsetCompiledPattern.java @@ -22,7 +22,6 @@ import java.text.ParseException; import java.text.ParsePosition; import java.time.ZonedDateTime; -import java.time.temporal.ChronoField; import java.util.Locale; import java.util.Set; @@ -37,8 +36,9 @@ public TimeZoneOffsetCompiledPattern(Set modifiers) { } @Override public String convertToString(ZonedDateTime dateTime, Locale locale) { - final int hours = dateTime.getOffset().get(ChronoField.HOUR_OF_DAY); - final int minutes = dateTime.getOffset().get(ChronoField.MINUTE_OF_HOUR); + final int offsetSeconds = dateTime.getOffset().getTotalSeconds(); + final int hours = offsetSeconds / 3600; + final int minutes = (offsetSeconds % 3600) / 60; String formattedHours = String.format(Locale.ROOT, "%s%02d", hours < 0 ? "-" : "+", hours);