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
Views: Raw Message | Whole Thread | Download mbox | Resend email
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

Browse pgsql-jdbc by date

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