2016-09-13 151 views
0

我们正在尝试使用utime将文件更新为某个时间戳。为此,我们采用时间戳的字符串版本,将其转化为“时间对象”,然后使用时代方法获取更新时间文件的时代。如何从某个时区获取时间 - >时代

my $yyyymmddhhmmss; # variable holding string version of time. example: 20150512:150632  
my $fileTime = Time::Piece->strptime($yyyymmddhhmmss, '%Y%m%d:%H%M%S'); 
utime $fileTime->epoch, $fileTime->epoch, $outfile; 

但是,设置文件的时间戳为UTC,这比时区,我们在不同的。除了手动添加额外秒,有另一种方式具有划时代推出的秒我们时区?

+3

历元时间总是在UTC [定义](https://en.wikipedia.org/wiki/Unix_time)。 – ThisSuitIsBlackNot

+0

对不起,让我用一种不同的方式来说明,我们可以从1970年1月1日起获得我们在该时区的日期时间的秒数吗? – FrankRalphBob

+2

如果'$ yyyymmddhhmmss'包含本地时间戳,则需要'localtime-> strptime(...)'。 – ThisSuitIsBlackNot

回答

0

您是否指定了$yyyymmddhhmmss是本地时间。

替换

Time::Piece->strptime($yyyymmddhhmmss, '%Y%m%d:%H%M%S') 

localtime->strptime($yyyymmddhhmmss, '%Y%m%d:%H%M%S')