2016-09-13 33 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')