我有一串纪元秒" 1510652305"当我使用
在unix命令行上转换为正常时间时`date -d @1510652305`
我明白了
Tue Nov 14 15:08:25 IST 2017
但是当我使用类似的东西在perl中尝试它时
use POSIX qw(strftime);
use Time::Local;
use Time::localtime;
$kickoff_time=1510652305;
$kickoff_time=ctime($kickoff_time);
我得到了
Thu Jan 1 05:30:00 1970
如何实现我在perl中获取linux的结果?
谢谢!
答案 0 :(得分:6)
不要过分思考它!
my $kickoff_time = localtime 1510652305;
say $kickoff_time; # Tue Nov 14 15:08:25 2017
如果你绝对正确地需要那里的时区:
use POSIX qw{strftime};
my $kickoff_time = strftime '%a %b %e %H:%M:%S %Z %Y', localtime 1510652305;
say $kickoff_time; # Tue Nov 14 15:08:25 IST 2017
请注意,这是与语言环境相关的。
答案 1 :(得分:3)
我建议使用Time::Piece
来完成这项工作 - 它是perl的核心。
#!/usr/bin/env perl
use strict;
use warnings;
use Time::Piece;
my $t = localtime ( 1510652305 );
print $t;
它会打印默认格式,或者您可以使用strftime
格式化。