我正在使用DateTime模块。但是它提供了错误的时间。请考虑以下代码:
#!/usr/bin/perl -w
use strict;
use Time::localtime;
my $now = ctime();
print $now."\n";
print "------------------------------\n";
use DateTime;
my $dt = DateTime->now;
print $dt."\n";
它的输出是:
Wed Dec 26 22:11:52 2012
------------------------------
2012-12-27T06:11:52
所以,如您所见,DateTime
输出领先 8 小时,这是错误的。这是Linuxdate
命令输出:
# date
Wed Dec 26 22:13:17 PST 2012
因此,date
命令输出与输出匹配time::localtime
。
DateTime
你能帮我理解我在使用模块时哪里出错了吗?
-谢谢。
更新:
来自 hte CPAN 文档:
DateTime->now( ... )
This class method is equivalent to calling from_epoch() with the value returned from Perl's time() function. Just as with the new() method, it accepts "time_zone" and "locale" parameters.
By default, the returned object will be in the UTC time zone.
因此,返回的时间似乎是 UTC。但是,我在 PST 所在的时区。可能这就是为什么我看到不同的时间。