http://qs1969.pair.com?node_id=504777


in reply to TimeZoning oddities

Update: See my second reply below.

Old Update: This is a bug in old versions of the POSIX module: see here, for example. I see this bug with Perl 5.8.0, but not with 5.8.6. (I don't know exactly which version fixed it.) Is upgrading an option for you? If not, you might have to use one of those other modules after all...

PPS. Looks like downgrading would also fix it: it's working properly in 5.6.2.

PPPS. But don't upgrade too much! I get the bug again with 5.8.7. This is very odd. Maybe it's affected by the build options or something, but I can't see an obvious pattern.

I can only offer the faintly unhelpful "it works for me": with your code I get:

Tue Nov 1 17:16:55 2005 Tue 01 Nov 2005 17:16:55 CST Tue Nov 1 18:16:55 2005 Tue 01 Nov 2005 18:16:55 EST
which seems reasonable. I can only suppose the problem is with your system rather than with Perl. What do you get if you do
env TZ=America/New_York date env TZ=America/Chicago date
in the shell?

Also, do you get the correct offset if you add %z to your strftime format?