DateTimeX-Lite
view release on metacpan or search on metacpan
tools/benchmark/thread_safety.pl view on Meta::CPAN
minute=>$m, second=>$s,time_zone=>$tz);
$dt->set_time_zone($new_tz);
return map $dt->$_, qw/year month day hour minute second/;
}
sub convert_timezone_env_c {
my ($y,$mo,$d,$h,$m,$s,$tz,$new_tz) = @_;
my $save_tz = Env::C::getenv("TZ");
Env::C::setenv("TZ",$tz,1);
my $time = POSIX::mktime($s,$m,$h,$d,$mo-1,$y-1900,0,0,-1);
Env::C::setenv("TZ",$new_tz,1);
POSIX::tzset(); # localtime_r bug
($s,$m,$h,$d,$mo,$y) = localtime($time);
$mo++; $y+=1900;
# this belongs in a destructor
if (defined $save_tz) { Env::C::setenv("TZ",$save_tz,1) }
else { Env::C::unsetenv("TZ") }
return ($y,$mo,$d,$h,$m,$s);
}
sub convert_timezone_system {
my ($y,$mo,$d,$h,$m,$s,$tz,$new_tz) = @_;
local $ENV{"TZ"} = $tz;
my $time = POSIX::mktime($s,$m,$h,$d,$mo-1,$y-1900,0,0,-1);
( run in 1.142 second using v1.01-cache-2.11-cpan-3989ada0592 )