如何从localtime()中提取时区

use*_*151 2 perl timezone localtime

我正在使用以下代码打印当前时间.

use Getopt::Long;
use Time::Local;
sub gettime
{
        my $t = time();
        my ($sec,$mn,$hr,$mday,$mon,$yr,@left, $dstr);

        ($sec,$mn,$hr,$mday,$mon,$yr,@left) = localtime($t);
        $yr  = $yr-100+2000;
        $mon += 1;
        $dstr = sprintf "%02d:%02d:%02d (%02d-%02d-%04d)", $hr, $mn, $sec, $mon,
 $mday, $yr;
        print $dstr;
}

gettime();
Run Code Online (Sandbox Code Playgroud)

我可以使用 - local $ ENV {TZ} =":/ usr/share/lib/zoneinfo/America/Los_Angeles"来设置时区;

如何从localtime()中提取时区?

sid*_*yll 5

你可以使用strftime():

use POSIX;
$tz = strftime("%Z", localtime());
Run Code Online (Sandbox Code Playgroud)

或者,计算之间的差异localtime()gmtime().