From: thomas at tada.se (Thomas Hallgren) Date: Fri, 31 Mar 2006 07:39:30 +0200 Subject: [Pljava-dev] Has ResultSet.getDate() correct handling DayLight saving time? In-Reply-To: References: <442C4595.60900@tada.se> Message-ID: <442CC092.4070101@tada.se> Hi Nic, Doh, you're right! The timezone is added correctly but I pick todays timezone, not the timezone of the date in question. I'll get back to you when that's fixed. Thanks for pointing this out (and keeping after me when I claimed there was no problem). Regards, Thomas Hallgren Nic Nofamily wrote: > But d.getTime() return different values when I called the same code from pljava.jdbc and postgresql.jdbc on same machine with same JVM. The diff was 3600000 msek before for pljava. > :( TimeZone.getDefault() at both pljava.jdbc and postgresql.jdbc equals > --------- > WBR, NiC > > 2006/3/31, Thomas Hallgren : > >> Hi Nic, >> I don't think the returned date as such is incorrect. The problem occurs >> when you represent the date as a string. What timezone do you use when >> you do that? Do you simply use d.toString() ? If so, the default >> timezone for your JVM is incorrect and that's the source of the problem. >> >> Regards, >> Thomas Hallgren >> >> Nic Nofamily wrote: >> >>> Hi all! >>> I have a little trouble with my pljava functions last night:( >>> -------------- >>> here config: >>> Java HotSpot(TM) Server VM (build 1.5.0_06-b05, mixed mode) >>> Debian Sarge >>> pljava 1.2.0 compiled from source >>> postgresql 8.1.3 installed from debian backports >>> --------------- >>> ResultSet.getDate for to_date('01/11/2005','DD/MM/YYYY') returns >>> 31/10/2005 for pljava jdbc driver >>> the same java code using postgresql jdbc driver works fine:( >>> >>> I discovered that wrong result depend on DayLight Saving time >>> and i wrote workaround on ObjectResultSet.getDate() >>> >>> public Date getDate(int columnIndex) >>> throws SQLException >>> { >>> Date d = (Date)this.getValue(columnIndex,Date.class); >>> if(!java.util.TimeZone.getDefault().inDaylightTime(d)){ >>> d = new >>> >>> >> java.sql.Date(d.getTime()+java.util.TimeZone.getDefault().getDSTSavings()); >> >>> } >>> return d; >>> } >>> >>> now my pljava code works good, but that's wrong way:( >>> What are you comments, developers?:) >>> PS: sorry for my English,I am Russian:) >>> _______________________________________________ >>> Pljava-dev mailing list >>> Pljava-dev at gborg.postgresql.org >>> http://gborg.postgresql.org/mailman/listinfo/pljava-dev >>> >>> >> > _______________________________________________ > Pljava-dev mailing list > Pljava-dev at gborg.postgresql.org > http://gborg.postgresql.org/mailman/listinfo/pljava-dev >