我使用以下代码将时间从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";
答案 0 :(得分:5)
根据this site,IST
用于多个国家/地区:
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.pm和http://en.wikipedia.org/wiki/Tz_database
答案 2 :(得分:0)
使用Olsen名称Asia / Kolkata而不是IST。