Re: JDBC Driver and timezones
От | Kris Jurka |
---|---|
Тема | Re: JDBC Driver and timezones |
Дата | |
Msg-id | alpine.BSO.2.00.1005190257480.27053@leary.csoft.net обсуждение исходный текст |
Ответ на | Re: JDBC Driver and timezones (Thomas Kellerer <spam_eater@gmx.net>) |
Ответы |
Re: JDBC Driver and timezones
|
Список | pgsql-jdbc |
On Wed, 19 May 2010, Thomas Kellerer wrote: > System.out.println("DST active: " + TimeZone.getDefault().useDaylightTime()); > System.out.println("DST delta: " + TimeZone.getDefault().getDSTSavings()); > > it correctly shows me that the JDK knows that DST is active and that it > should add one hour > (without setting a timezone when starting the JVM) I think the problem is that the Java specification for java.sql.Time requires that the date portion be filled in with 1970-01-01. So when trying to determine the zone shift to apply when printing it out, it is checking with that date instead of today's date as you are expecting. When reading a timetz value in, we don't need to determine what the zone shift is, it's explicit, so in this case we shift by the explicit DST amount. When printing it back out, the original zone offset has been discarded and we shift by the non-DST amount because the date 1970-01-01 doesn't use DST. I think we'd like to be able to override the getTimezoneOffset value for the Time object, but there's no easy way to do that without creating our own PgTime object. Kris Jurka
В списке pgsql-jdbc по дате отправления: