Re: Strange behaviour of rs.getTimestamp - Mailing list pgsql-jdbc

From Altaf Malik
Subject Re: Strange behaviour of rs.getTimestamp
Date
Msg-id 948897.28558.qm@web110410.mail.gq1.yahoo.com
Whole thread Raw
In response to Re: Strange behaviour of rs.getTimestamp  ("Kevin Grittner" <Kevin.Grittner@wicourts.gov>)
Responses Re: Strange behaviour of rs.getTimestamp
List pgsql-jdbc
Here is the output of the program run. I also included user.timezone

Sun Microsystems Inc.
1.6.0_21
Java HotSpot(TM) 64-Bit Server VM
mixed mode
TimeZone:Asia/Karachi
2009-04-15 00:00:00->2009-04-15 01:00:00.0

I am using UBUNTU 10.10 64 bit.
I don't see this behaviour with other timezones. For example, I set my TZ to PST, GMT and the values were correct.

I debugged little further and found that the value is changed in the following code:

    Calendar c = new GregorianCalendar();
        c.set(Calendar.ERA,          1);
        c.set(Calendar.YEAR,         2009);
        c.set(Calendar.MONTH,        4-1);
        c.set(Calendar.DAY_OF_MONTH, 15);
        c.set(Calendar.HOUR_OF_DAY,  0);
        c.set(Calendar.MINUTE,       0);
        c.set(Calendar.SECOND,       0);
        c.set(Calendar.MILLISECOND,  0);
        Timestamp ts = new Timestamp(c.getTime().getTime());

In the specific scenario, if you print ts, it shows hour value as 1 only on this specific date. So obviously, something seems wrong with JDK or my timezone data.
My point is, that when we don't want the value interpreted in different timezones (we are using timestamp and not timestamp with timezone), we should not  use Calander to convert value to a timestamp when we exactly have year,month,day,hour,minute and second values.

-- Altaf Malik


From: Kevin Grittner <Kevin.Grittner@wicourts.gov>
To: Altaf Malik <mmalik_altaf@yahoo.com>
Cc: Samuel Gendler <sgendler@ideasculptor.com>; pgsql-jdbc@postgresql.org
Sent: Fri, January 7, 2011 2:00:55 AM
Subject: Re: [JDBC] Strange behaviour of rs.getTimestamp

Samuel Gendler <sgendler@ideasculptor.com> wrote:

> It might also be potentially revealing if you print out the
> default timezone and locale for the jvm in question as well.

Good point.  In addition to the system properties printed from what
I posted, please include the "user.timezone" system property.

-Kevin

--
Sent via pgsql-jdbc mailing list (pgsql-jdbc@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-jdbc

pgsql-jdbc by date:

Previous
From: Marc
Date:
Subject: Re: text type handling
Next
From: Radosław Smogura
Date:
Subject: Re: Strange behaviour of rs.getTimestamp