Re: ResultSet.getObject(..., LocalTime.class) not working withPostgres timetz type

Поиск
Список
Период
Сортировка
От Mark Rotteveel
Тема Re: ResultSet.getObject(..., LocalTime.class) not working withPostgres timetz type
Дата
Msg-id f42cc628-83c9-d009-707a-347126539b2d@lawinegevaar.nl
обсуждение исходный текст
Ответ на ResultSet.getObject(..., LocalTime.class) not working with Postgrestimetz type  (Thomas Kellerer <spam_eater@gmx.net>)
Ответы Re: ResultSet.getObject(..., LocalTime.class) not working withPostgres timetz type  (Thomas Kellerer <spam_eater@gmx.net>)
Список pgsql-jdbc
For reference, the JDBC specification does not specify support 
java.time.LocalXXX types on WITH TIME ZONE types.

Especially because it is rather ambiguous what local would mean: would 
it mean local in the default JVM time zone, local at the original zone 
or local at UTC?

Mark

On 6-4-2019 09:59, Thomas Kellerer wrote:
> 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 at index 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
> 
> 
> 
> 
> 


-- 
Mark Rotteveel



В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Thomas Kellerer
Дата:
Сообщение: ResultSet.getObject(..., LocalTime.class) not working with Postgrestimetz type
Следующее
От: Thomas Kellerer
Дата:
Сообщение: Re: ResultSet.getObject(..., LocalTime.class) not working withPostgres timetz type