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 )