2012-02-10 69 views
1

我正在使用以下代碼來更改從IST到EST的時間......但Perl說「無效偏移:IST」和時區「EST」無法加載,或者是一個無效的名字。 ?在將IST日期轉換爲perl時的EST日期時出錯

任何一個可以請幫助」

use DateTime; 
use DateTime::Format::Strptime; 
my $val = "20090103 12:00"; 
my $format = new DateTime::Format::Strptime(     
        pattern => '%Y%m%d %H:%M',   
              time_zone => 'IST',    ); 
my $date = $format->parse_datetime($val); 
print $date->strftime("%Y%m%d %H:%M %Z")."\n"; 
$date->set_time_zone('EST'); 
print $date->strftime("%Y%m%d %H:%M %Z")."\n"; 
+0

使用間接對象符號('新的datetime ::格式:: Strptime(..)')是個壞習慣http://search.cpan.org/dist/DateTime-TimeZone/lib/DateTime/TimeZone.pmhttp://en.wikipedia.org/wiki/Tz_database。改用'DateTime :: Format :: Strptime-> new(...)'。 – 2012-02-10 14:06:44

回答

0

相反IST的,使用亞洲/加爾各答奧爾森名

5

this siteIST用於幾個國家:

IST Israel Standard Time Asia UTC + 2 hours 
IST India Standard Time Asia UTC + 5:30 hours 
IST Irish Standard Time Europe UTC + 1 hour 

因此,不是使用IST,而是使用例如Europe/Dublin

1

使用諸如「亞洲/耶路撒冷」和「America/New_York」而不是「IST」和「EST」的Olson DB時區名稱。你可以看看他們here

詳見

相關問題