2011-07-15 75 views
0

基本問題在標題中:我有一個unix時間戳和一個時區,例如: 「America/Caracas」,我想將其轉換爲當地時區。Perl:如何將unix時間戳+時區轉換爲本地時間

通過計算器搜索,我發現別人asking pretty much the same question,然而,所提供的答案代碼

$t = new DateTime(); 
$t->setTimestamp($time=time()); 
$t->setTimeZone(new DateTimeZone("America/Denver")); 
print $t->format(DateTime::RFC850); 

不起作用(了?)。 DateTime()不允許我設置時間戳;我查看了DateTime源代碼,但也沒有看到,我可以在哪裏連接自己的時間戳。任何想法/幫助?

非常感謝提前!

+0

那篇文章提到'DateTime in PHP'而不是'perl' – Rahul

+0

哎喲,我完全過度勞累!感謝那! woops! – Sarah

回答

-1

嘗試:

my $epoch = time; 
warn $epoch; 
my $dt = DateTime->from_epoch(epoch => $epoch); 
warn $dt->year; 
#and so on 
+0

這對我不起作用,嘗試$ dt->年時出現錯誤。通過$ ENV {TZ}進行初步的解決方案,儘管我閱讀了一些也不推薦的帖子。 – Sarah

+0

除非你告訴我錯誤是什麼,我無法幫助 – marto

+1

你的代碼將返回UTC時間,而不是當地時間。這可能是他的意思是「不起作用」。 –

4
use DateTime; 

my $dt = DateTime->from_epoch(
    epoch  => time(), 
    time_zone => "America/Denver" 
); 
print "$dt\n"; 

DateTime文檔的詳細信息。

+0

工作!謝謝! – Sarah

+1

如果有效,那麼你應該接受他的答案! –

相關問題