ошибка при преобразовании даты IST в дату EST в perl - PullRequest
1 голос
/ 10 февраля 2012

Я использую следующий код для изменения времени с 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 ]

5 голосов
/ 10 февраля 2012

Согласно этот сайт , 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 голос
/ 10 февраля 2012

Используйте имена часовых поясов Olson DB, такие как «Азия / Иерусалим» и «Америка / Нью-Йорк» вместо «IST» и «EST».Вы можете посмотреть их здесь .

Подробнее см. http://search.cpan.org/dist/DateTime-TimeZone/lib/DateTime/TimeZone.pm и http://en.wikipedia.org/wiki/Tz_database

0 голосов
/ 10 февраля 2012

Вместо IST используйте имя Олсен Азия / Калькутта.

...