Actually I don't think
the statement (
that parent's code will produce an incorrect time during DST) is correct but neither do I think
Robin's surmise that the code in
Re: How to convert time from one time zone to another will "work on Windows" is
universally correct.
Under Windows7:
#!/usr/bin/perl
use 5.014;
# convert TZ
say "\$ENV{TZ}: $ENV{TZ}"; # var had to be manually added on stock
+ W7
{
local $ENV{TZ} = "EST+05";
say "In New York, it is " . localtime();
}
{
local $ENV{TZ} = "IST-05:30"; # does not return c
+orrect time on W7
say "In Mumbai, it is " . localtime(); # but, rather, same
+ as NY localtime
}
outputs:
$ENV{TZ}: EST5EDT # TZ is set but this does
+
# not appear to be defaul
+t (for Win7)
In New York, it is Mon Apr 2 10:41:23 2012 # correct
In Mumbai, it is Mon Apr 2 10:41:23 2012 #obviously wrong
But this may be the result of a misconception on my part about 'doze ENV and its vars.
Anyone care to explicate?