如何在perl中将历元秒转换为正常时间?
我有一个历元秒字符串“1510652305”,当我在unix命令行上使用如何在perl中将历元秒转换为正常时间?,perl,date,Perl,Date,我有一个历元秒字符串“1510652305”,当我在unix命令行上使用 `date -d @1510652305` 我明白了 2017年11月14日星期二15:08:25 IST 但是当我在perl中使用类似这样的东西时 use POSIX qw(strftime); use Time::Local; use Time::localtime; $kickoff_time=1510652305; $kickoff_time=ctime($kickoff_time); 我明白了 1970年1
`date -d @1510652305`
我明白了
2017年11月14日星期二15:08:25 IST
但是当我在perl中使用类似这样的东西时
use POSIX qw(strftime);
use Time::Local;
use Time::localtime;
$kickoff_time=1510652305;
$kickoff_time=ctime($kickoff_time);
我明白了
1970年1月1日星期四05:30:00
在linux中,如何用perl实现我得到的结果
谢谢 不要想得太多
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
请注意,这取决于语言环境。我建议使用
Time::Piece
来完成这项工作——它是perl的核心
#!/usr/bin/env perl
use strict;
use warnings;
use Time::Piece;
my $t = localtime ( 1510652305 );
print $t;
它将打印默认格式,或者您可以使用
strftime
使用格式化 我们必须使用localtime从历元秒到时间转换,使用gmtime从正常秒到时间转换,我现在就知道了…谢谢!!还是很困惑。localtime
和gmtime
都希望输入的是epoch秒。要详细说明,localtime()
获取历元并返回表示本地时区中时间的字符串(或日期部分数组)gmtime()
获取历元并返回一个表示UTC时间的字符串(或日期部分数组)。我不知道您来自何处,是否方便,但您是否打算在下个周末参加伦敦Perl研讨会?我是牛津人。我没有意识到有一个。我可能会看一看,看能否到达那里,但可能性并不是那么大;)我想包括一个链接。。。[这里是](yapc.eu/lpw2017/法案)。LPW是一项一年一度的活动,总是在年底,在一个星期六,在伦敦市中心的一所大学里免费举行。出席人数从100人到200人不等,通常会有三到四条平行的演讲轨道,然后参观酒吧。我以前去过那里一次,今年去(和说)了。还有一些像戴夫·克罗斯这样的常客也将出席。我甚至不知道你是英国人。我要从柏林来,所以牛津不应该那么难OP没有访问日期部分,因此Time::Piece在这里没有任何帮助。Time::Piece::localtime()返回的标量值与内置的localtime()
返回的标量值没有什么不同。我错过什么了吗?