Re: Strange behaviour of rs.getTimestamp

Поиск
Список
Период
Сортировка
От Radosław Smogura
Тема Re: Strange behaviour of rs.getTimestamp
Дата
Msg-id 201101071949.04842.mail@smogura.eu
обсуждение исходный текст
Ответ на Re: Strange behaviour of rs.getTimestamp  (Radosław Smogura <rsmogura@softperience.eu>)
Список pgsql-jdbc
Sorry, but for P. S.

It's quite good response, because, in your timezone, and in all other
timezones when DST starts there is no hour and times in your e.g. 2009-14-15
0:00:00 till 2099-14-15 1:00:00. At midnight you add one hour to all clocks.
So just after 2009-14-14 23:59:59.9999999. you have 2009-14-15 1:0:0.

As you use Timestamps, Java internaly stores time in UTC, and when You cast
this to String, then Calendar will rollover such fields to next Value (see
setLenient(bool)).

Unfortunatly Pakistan Gover, choosed realy bed time for DST, if this would be
1 AM, you have no problem.

Radosław Smogura <rsmogura@softperience.eu> Friday 07 January 2011 17:54:51
> Hi,
> I think it's DST maybe you missed something. I didn't search deaply.
> https://bugzilla.redhat.com/show_bug.cgi?id=495473
>
> Did you missed something, about DST?
>
> Kind regards,
> Radosław Smogura
> http://softperience.eu
>
> Altaf Malik <mmalik_altaf@yahoo.com> Friday 07 January 2011 16:31:26
>
> > 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

В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Maciek Sakrejda
Дата:
Сообщение: Re: text type handling
Следующее
От: Lukas Eder
Дата:
Сообщение: Re: Support for SQLInput / SQLOutput