我正在使用以下代码打印当前时间。
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();
我可以使用 - 设置时区 - 本地$ ENV {TZ} =“:/ usr / share / lib / zoneinfo / America / Los_Angeles”;
如何从localtime()中提取时区?
答案 0 :(得分:5)
您可以使用strftime()
:
use POSIX;
$tz = strftime("%Z", localtime());
或者,计算localtime()
和gmtime()
之间的差异。
答案 1 :(得分:1)
您可以拥有时区以及UTC的偏移量:
perl -MPOSIX -e 'print strftime "%Z (%z)\n",localtime'
答案 2 :(得分:0)
$ perl -MPOSIX -le 'tzset; print for tzname'
CST
CDT
来自POSIX模块的 tzset()
和tzname()
函数可以很容易地被记住。