在perl中将IST日期转换为EST日期时出错

时间:2012-02-10 13:17:50

标签: perl datetime-format

我使用以下代码将时间从IST更改为EST ...但是Perl说“无效偏移:IST”并且无法加载时区“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"; 

3 个答案:

答案 0 :(得分: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 :(得分:1)

使用Olson DB时区名称,例如“Asia / Jerusalem”和“America / New_York”,而不是“IST”aund“EST”。您可以查看here

有关详细信息,请参阅http://search.cpan.org/dist/DateTime-TimeZone/lib/DateTime/TimeZone.pmhttp://en.wikipedia.org/wiki/Tz_database

答案 2 :(得分:0)

使用Olsen名称Asia / Kolkata而不是IST。