【发布时间】:2018-03-07 21:54:37
【问题描述】:
是否可以使用 POSIX 模块在 Perl 中将给定的时间戳转换为 GMT?以下是我尝试过的,但不知道为什么时间如此遥远......
use POSIX;
my $shipts = "2017-09-23 20:53:00";
my $shiptsgmt = strftime("%Y-%m-%d %R", localtime(str2time($shipts, 'GMT')));
print "$shiptsgmt\n";
服务器的本地时间是太平洋时间,猜猜我正在尝试做的事情是不正确的。以上产生 2017-09-23 13:53 我需要 2017-09-24 03:53 时间。
【问题讨论】:
-
使用 POSIX 允许 str2time。
-
我在 POSIX 文档(v5.16 和 v5.27)中没有看到...
-
@rwfitzy ?我得到了
Undefined subroutine &main::str2time called at ... -
POSIX.pm 没有任何日期解析实用程序;它不是最适合这项工作的模块。
-
对不起,我现在看到它实际上来自使用了 Date::Parse 。鉴于这应该是关于该模块而不是现在的 POSIX,解决方案非常简单,可以使用 gmtime 而不是 localtime,如 gmtime(str2time($shipts))。有效!