我是一個初學perl的人,嘗試使用我的第一個perl腳本將epoch-sconds中的時間信息轉換爲特定的格式。我知道1月份的月份= 0,1900年的月份= 0,來自其他的stackoverflow問題。即使在對它們進行調整之後,我在unix和perl之間也看不到相同的輸出。Perl時間vs Unix日期輸出不一致
這是我試過並得到的。
的Unix:
日期-d @ 915149280
給我:
週四12月31日19點08分00秒美國東部時間1998年
的Perl:
$time = 915149280;
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime($time);
$year = $year + 1900;
$mon = $mon + 1;
print "Formated time = $mday/$mon/$year $hour:$min:$sec $weekday[$wday]\n";
給我:
格式化時間= 1/1/1999 0:8:0週五
是否有perl的線什麼錯誤?我該怎麼做才能得到與date命令相同的輸出? (不是格式化部分,但時間)
我不是在尋找所有的領域,只有一年對我很重要。
時區。你關閉了5個小時。 ANYTIME你得到一個時間差的確切時間不同,它幾乎是99.999999%的時區問題 – 2014-10-29 14:32:47
除了時區差異之外,你應該使用帶有「%02d」的'printf'來打印大部分字段。 – 2014-10-29 14:43:35
@KeithThompson:不,他/他應該使用POSIX :: strftime(或其他模塊的strftime)來打印所有字段:) – ysth 2014-10-29 14:51:24