[Pljava-dev] Has ResultSet.getDate() correct handling DayLight saving time?

Thomas Hallgren thomas at tada.se
Fri Mar 31 05:39:30 UTC 2006


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 <thomas at tada.se>:
>   
>> 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
>   




More information about the Pljava-dev mailing list