在Perl中格式化DateTime字段

时间:2016-12-02 20:54:36

标签: perl date-format date-manipulation

我正在尝试使用字符串日期,并将其格式化为正确输出为"%Y%m%d_%H%M"。除了白天,一切都输出正确。它实际上在第二天返回,我不知道为什么会这样。下面是代码和输出。

my $currentTime = strftime("%Y%m%d_%H%M\n", gmtime(time));
my $hashTime    = strftime("%Y%m%d_%H%M\n", gmtime(UnixDate($user->{'add_date'}, "%s")));

$self->Print($user->{'add_date'} ."\n". $currentTime . "\n" . $hashTime);

输出:

2016-12-02 20:35:43 # Date from the Database 
20161202_2046  # Current GMTime
20161203_0235  # This should be 20161202_2035?

它怎么输出为03?

1 个答案:

答案 0 :(得分:1)

好的,所以我明白了。对于好奇的人,新代码如下。

my $currentTime = strftime("%Y%m%d_%H%M\n", gmtime(time));
my $hashTime    = UnixDate($user->{'add_date'}, "%Y%m%d_%H%M");

$self->Print($user->{'add_date'} ."\n". $currentTime . "\n" . $hashTime);

正如您所知,在$ hashTime下,当使用UnixDate()时,您不需要使用strftime,因为它已经按照您需要的方式对其进行格式化。