Skip site navigation (1) Skip section navigation (2)

Re: problem with dates when using a java calendar object with

From: Dave Cramer <pg(at)fastcrypt(dot)com>
To: Jair da Silva Ferreira Jr <j2(at)amazon(dot)com(dot)br>
Cc: pgsql-jdbc(at)postgresql(dot)org, schabios(at)logi-track(dot)com
Subject: Re: problem with dates when using a java calendar object with
Date: 2004-10-16 15:21:43
Message-ID: 41713C87.7010604@fastcrypt.com (view raw or flat)
Thread:
Lists: pgsql-jdbc
Jair,

When using the newer drivers, did you use setDate( ) with the 
appropriate calendar object ?

If you have test code, can you send it ?

Dave

Jair da Silva Ferreira Jr wrote:

> Hi Dave,
>    Thanks for your reply.
>
> Dave Cramer wrote:
>
>> As Kris already pointed out you can use the calendar specified by the 
>> user now; if you download the development driver.
>
>
>    I have used the following drivers in my test program: 
> pg72jdbc2.jar, pgdev.306.jdbc2.jar and pgdev.306.jdbc3.jar. All of 
> them presented the problem but with different time errors. The test 
> results are above. I am using a DateFormat to print dates. The 
> DateFormat object is appropriately configured for my timezone and 
> calendar. Any other ideas? :-)
>
> Using driver: pg72jdbc2.jar
> date (0) inserted: 16/10/04 00:00
> date (1) inserted: 16/10/04 23:59
> date (2) inserted: 16/10/04 08:00
> date (3) inserted: 16/10/04 19:00
> date (0) loaded: 15/10/04 17:00
> date (1) loaded: 16/10/04 17:00
> date (2) loaded: 15/10/04 17:00
> date (3) loaded: 16/10/04 17:00
>
> Using driver: pgdev.306.jdbc2.jar
> date (0) inserted: 16/10/04 00:00
> date (1) inserted: 16/10/04 23:59
> date (2) inserted: 16/10/04 08:00
> date (3) inserted: 16/10/04 19:00
> date (0) loaded: 15/10/04 10:00
> date (1) loaded: 16/10/04 10:00
> date (2) loaded: 15/10/04 10:00
> date (3) loaded: 16/10/04 10:00
>
> Using driver: pgdev.306.jdbc3.jar
> date (0) inserted: 16/10/04 00:00
> date (1) inserted: 16/10/04 23:59
> date (2) inserted: 16/10/04 08:00
> date (3) inserted: 16/10/04 19:00
> date (0) loaded: 15/10/04 10:00
> date (1) loaded: 16/10/04 10:00
> date (2) loaded: 15/10/04 10:00
> date (3) loaded: 16/10/04 10:00
>
> Thanks,
>    Jair Jr
>
>>
>> Dave
>>
>> Jair da Silva Ferreira Jr wrote:
>>
>>> Hi Markus,
>>>    Thank you very much for your reply.
>>>
>>> Markus Schaber wrote:
>>>
>>>> Hi, Jair,
>>>>
>>>> On Thu, 14 Oct 2004 11:41:21 -0300
>>>> Jair da Silva Ferreira Jr <j2(at)amazon(dot)com(dot)br> wrote:
>>>>
>>>>  
>>>>
>>>>> My test table definition is: create table date_test (d date)
>>>>> As you can see it is a date type, so there's no time zone 
>>>>> information on it.
>>>>> Do you think that the date not having time zone information is the 
>>>>> source of the problem? If yes, what time zone should I use so that 
>>>>> dates are correctly inserted and selected? UTC time zone? The 
>>>>> default JVM timezone?
>>>>>   
>>>>
>>>>
>>>>
>>>>
>>>> It is possible that this is the source of your problem.
>>>>
>>>> Table columns with time zone always remember the time zone of the 
>>>> dates
>>>> stored, while the table columns without time zone convert your date to
>>>> UTC and forget the original time zone.
>>>>
>>>> This had to be changed at postgres level. Just test whether manually
>>>> inserting dates (e. G. via psql) and then re-reading works.
>>>>  
>>>>
>>>    I inserted dates via pgsql and selected them via Java and the 
>>> problem remains. I keep getting wrong days in my date. I think the 
>>> JDBC driver is somehow considering the current jvm timezone to 
>>> calculate dates. I think this is wrong because I am providing a 
>>> user-defined Calendar exactly not to use the jvm default.
>>>    I analysed the AbstractJdbc2Statement.java and 
>>> AbstractJdbc2ResultSet.java source code and I noticed that the 
>>> driver transforms the date in a String and them inserts it into the 
>>> database. Maybe the problem is how the String is being generated. I 
>>> think the best solution is to use a java.text.DateFormat object with 
>>> the calendar specified by the user set on it. This DateFormat object 
>>> could be used to both insert and select the date value from the 
>>> database because it has a format(Date) and parse(Date) method. What 
>>> do you think?
>>>
>>> Thanks,
>>>    Jair Jr
>>>
>>>
>>> ---------------------------(end of 
>>> broadcast)---------------------------
>>> TIP 2: you can get off all lists at once with the unregister command
>>>    (send "unregister YourEmailAddressHere" to majordomo(at)postgresql(dot)org)
>>>
>>>
>>
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: the planner will ignore your desire to choose an index scan if 
> your
>      joining column's datatypes do not match
>
>

-- 
Dave Cramer
www.postgresintl.com
519 939 0336
ICQ#14675561


In response to

Responses

pgsql-jdbc by date

Next:From: Ed TyrrillDate: 2004-10-17 02:18:18
Subject: Error connecting when user has no password
Previous:From: Jair da Silva Ferreira JrDate: 2004-10-16 14:18:40
Subject: Re: problem with dates when using a java calendar object with

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group