Thread: DST question

DST question

From
"Wright, George"
Date:

I am trying to get Daylight Savings Time working for the EAST Brazilian time zone. In Brazil for 2007, the DST change occurs on Oct. 13-14.

 

I tried setting the DB to each of the following time zones with the statement:  SET SESSION TIME ZONE <TZ>;

 

Where <TZ> was one of the following:

 

‘America/Sao_Paulo Brazil/East’;

‘EBST3EBDT’;

‘BRT’

 

The DST switch appears to happen on 10/28/2007 between the hours of 1am and 2am with all 3 of those strings.

 

The output of select version();  is:

 

PostgreSQL 8.1.5 on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.1.2 20061115 (prerelease) (SUSE Linux)

 

O/S is Suse 10.2

 

 

How do I get the proper DST for East Brazil to work?

 

Thanks.

Re: DST question

From
Tom Lane
Date:
"Wright, George" <George.Wright@infimatic.com> writes:
> I am trying to get Daylight Savings Time working for the EAST Brazilian
> time zone. In Brazil for 2007, the DST change occurs on Oct. 13-14.

You need a newer version of the zic timezone database.  Way newer --- it
looks to me like the first version of the zic files that knows the above
rules is 2007h, which was released today.  You'd need to grab
ftp://elsie.nci.nih.gov/pub/tzdata2007h.tar.gz, feed it through zic,
and put the files into place in the Postgres installation tree.

<rant>
Suggestion: lobby your politicians to set DST transition dates more than
just a month in advance.  Or even (heaven forbid) have a law that stays
the same for years at a time.  Don't they realize that people have
better things to do than scramble to update their equipment at the last
minute?
</rant>

            regards, tom lane

Re: DST question

From
"Wright, George"
Date:
I downloaded the archive and extracted the files, and ran zic on them
(southamerica in particular)

When I execute zdump Brazil/East I see the following:

Brazil/East  Sun Oct 21 02:59:59 2029 UTC = Sat Oct 20 23:59:59 2029 BRT
isdst=0 gmtoff=-10800
Brazil/East  Sun Oct 21 03:00:00 2029 UTC = Sun Oct 21 01:00:00 2029
BRST isdst=1 gmtoff=-7200

These appear to be the old rules. I'm not sure what I did wrong. I
rebooted PostGreSQL and the box just in case but still see the old
values.

Any ideas?


-----Original Message-----
From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
Sent: Monday, October 01, 2007 2:10 PM
To: Wright, George
Cc: pgsql-novice@postgresql.org
Subject: Re: [NOVICE] DST question

"Wright, George" <George.Wright@infimatic.com> writes:
> I am trying to get Daylight Savings Time working for the EAST
Brazilian
> time zone. In Brazil for 2007, the DST change occurs on Oct. 13-14.

You need a newer version of the zic timezone database.  Way newer --- it
looks to me like the first version of the zic files that knows the above
rules is 2007h, which was released today.  You'd need to grab
ftp://elsie.nci.nih.gov/pub/tzdata2007h.tar.gz, feed it through zic,
and put the files into place in the Postgres installation tree.

<rant>
Suggestion: lobby your politicians to set DST transition dates more than
just a month in advance.  Or even (heaven forbid) have a law that stays
the same for years at a time.  Don't they realize that people have
better things to do than scramble to update their equipment at the last
minute?
</rant>

            regards, tom lane

Re: DST question

From
Tom Lane
Date:
"Wright, George" <George.Wright@infimatic.com> writes:
> I downloaded the archive and extracted the files, and ran zic on them
> (southamerica in particular)

> When I execute zdump Brazil/East I see the following:

> Brazil/East  Sun Oct 21 02:59:59 2029 UTC =3D Sat Oct 20 23:59:59 2029 BRT
> isdst=3D0 gmtoff=3D-10800
> Brazil/East  Sun Oct 21 03:00:00 2029 UTC =3D Sun Oct 21 01:00:00 2029
> BRST isdst=3D1 gmtoff=3D-7200

> These appear to be the old rules. I'm not sure what I did wrong. I
> rebooted PostGreSQL and the box just in case but still see the old
> values.=20

Did you put the files in the right place?

zdump probably looks at /usr/share/zoneinfo (or local equivalent)
by default.  Postgres looks in $sharedir/timezone, where
"pg_config --sharedir" will tell you what $sharedir is.  You'll
probably need to update both of those directory trees and reboot
before everything in the system will notice the new rules.

            regards, tom lane

Re: DST question

From
"Wright, George"
Date:
Thank you so much! It did work when I got the directories correct.



-----Original Message-----
From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
Sent: Monday, October 01, 2007 7:08 PM
To: Wright, George
Cc: pgsql-novice@postgresql.org
Subject: Re: [NOVICE] DST question

"Wright, George" <George.Wright@infimatic.com> writes:
> I downloaded the archive and extracted the files, and ran zic on them
> (southamerica in particular)

> When I execute zdump Brazil/East I see the following:

> Brazil/East  Sun Oct 21 02:59:59 2029 UTC =3D Sat Oct 20 23:59:59 2029
BRT
> isdst=3D0 gmtoff=3D-10800
> Brazil/East  Sun Oct 21 03:00:00 2029 UTC =3D Sun Oct 21 01:00:00 2029
> BRST isdst=3D1 gmtoff=3D-7200

> These appear to be the old rules. I'm not sure what I did wrong. I
> rebooted PostGreSQL and the box just in case but still see the old
> values.=20

Did you put the files in the right place?

zdump probably looks at /usr/share/zoneinfo (or local equivalent)
by default.  Postgres looks in $sharedir/timezone, where
"pg_config --sharedir" will tell you what $sharedir is.  You'll
probably need to update both of those directory trees and reboot
before everything in the system will notice the new rules.

            regards, tom lane