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
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 |