Retrieving the value of a timetz column fails when using getObject(, LocalTime.class)
Consider the following code:
Connection con = DriverManager.getConnection(...);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select current_time");
rs.next();
LocalTime lt = rs.getObject(1, LocalTime.class);
The above fails with:
org.postgresql.util.PSQLException: Bad value for type timestamp/date/time: {1}
at org.postgresql.jdbc.TimestampUtils.toLocalTime(TimestampUtils.java:433)
at org.postgresql.jdbc.PgResultSet.getLocalTime(PgResultSet.java:563)
at org.postgresql.jdbc.PgResultSet.getObject(PgResultSet.java:3391)
at TestLocalTime.main(TestLocalTime.java:23)
Caused by: java.time.format.DateTimeParseException: Text '09:48:19.747249+02' could not be parsed, unparsed text found
atindex 15
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1952)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
at java.time.LocalTime.parse(LocalTime.java:441)
at java.time.LocalTime.parse(LocalTime.java:426)
at org.postgresql.jdbc.TimestampUtils.toLocalTime(TimestampUtils.java:430)
getObject(1, OffsetTime.class) fails with "conversion to class java.time.OffsetTime from 92 not supported"
I am not sure if this is the same as: https://github.com/pgjdbc/pgjdbc/issues/1048
If it's not the same root cause, should I create an issue?
Using "select localtime" instead, works just fine
Regards
Thomas