Re: problem with dates when using a java calendar object with - Mailing list pgsql-jdbc
From | Dave Cramer |
---|---|
Subject | Re: problem with dates when using a java calendar object with |
Date | |
Msg-id | 41713C87.7010604@fastcrypt.com Whole thread Raw |
In response to | Re: problem with dates when using a java calendar object with (Jair da Silva Ferreira Jr <j2@amazon.com.br>) |
Responses |
Re: problem with dates when using a java calendar object with
|
List | 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@amazon.com.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@postgresql.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
pgsql-jdbc by date: