Time Zone

2007-12-25 10:11:00

Thanks to Casper Dik who pointed out that

The slower TZ is correct; the faster TZ has hardcoded start and end dates

and has no knowledge of the past.

MOre Detail

------------

The "US/Eastern" specification uses the rules from

/usr/share/lib/zoneinfo/northamerica

The EST5EDT form uses "implementation specific start and end times"

(see environ(5))

It uses rules like:

Rule US 1974 only - Jan 6 2:00 1:00 D

Rule US 1975 only - Feb 23 2:00 1:00 D

Rule US 1976 1986 - Apr lastSun 2:00 1:00 D

Rule US 1987 max - Apr Sun>=1 2:00 1:00 D

As you can see, the specific rule for starting DST changed a few times;

EST5EDT uses the same rule for all years.

Original Question

----------------------

When installing Solaris 2.6 I select US Eastern as my timezone. It sets

TZ=US/Eastern in /etc/default/init. However, if you truss a process that

makes a time call you will see :

time() = 927117639

open("/usr/share/lib/zoneinfo/US/Eastern", O_RDONLY) = 3

read(3, "\0\0\0\0\0\0\0\0\0\0\0\0".., 8192) = 1250

close(3) = 0

03/09/93 19930310

write(1, " 0 3 / 0 9 / 9 3 1 9 9".., 20) = 20

if you set TZ=EST5EDT

a truss of the same process shows that there is no open, read or close:

time() = 927117589

03/09/93 19930310

write(1, " 0 3 / 0 9 / 9 3 1 9 9".., 20) = 20

So a program running with TZ=EST5EDT runs much faster. Has anyone

else noticed this and does anyone know why Sun would default to the

slower TZ.

Thanks

Jacqueline Rosinsky

Renaissance Technologies

516-444-7041

Comments

Got something to say?

You must be logged in to post a comment.