From 59438de1d166d9b44ecea8b382174641670a5fd6 Mon Sep 17 00:00:00 2001 From: lukaseder Date: Tue, 8 Jan 2019 12:25:33 +0100 Subject: [PATCH] [#8181] Timezone Offset parser doesn't correctly parse offset seconds --- jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java index c9b035f430..d61f8020e1 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java @@ -2533,6 +2533,7 @@ public class DefaultBinding implements Binding { private static final ZoneOffset parseOffset(String string, int[] position) { int offsetHours = 0; int offsetMinutes = 0; + int offsetSeconds = 0; if (!parseCharIf(string, position, 'Z')) { @@ -2554,14 +2555,19 @@ public class DefaultBinding implements Binding { if (parseCharIf(string, position, ':')) offsetMinutes = parseInt(string, position, 2); + // [#8181] In some edge cases, there might also be a seconds offset + if (parseCharIf(string, position, ':')) + offsetSeconds = parseInt(string, position, 2); + if (minus) { offsetHours = -offsetHours; offsetMinutes = -offsetMinutes; + offsetSeconds = -offsetSeconds; } } } - return ZoneOffset.ofHoursMinutes(offsetHours, offsetMinutes); + return ZoneOffset.ofHoursMinutesSeconds(offsetHours, offsetMinutes, offsetSeconds); } private static final void parseAnyChar(String string, int[] position, String expected) {