2012-02-10 2 views
1

IST에서 EST로 시간을 변경하는 데 다음 코드를 사용하고 있습니다 ... 그러나 Perl이 "잘못된 오프셋 : IST"라고 표시하고 'EST' 유효하지 않은 이름입니다. ?. Perl에서 IST 날짜를 EST 날짜로 변환하는 중 오류가 발생했습니다.

어느 한 도와 주실 래요 "대신 IST의

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

에 대한 http://search.cpan.org/dist/DateTime-TimeZone/lib/DateTime/TimeZone.pmhttp://en.wikipedia.org/wiki/Tz_database를 참조하십시오. 대신에'DateTime :: Format :: Strptime-> new (...)'를 사용하십시오. –

답변

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

"IST"aund "EST"대신 "Asia/Jerusalem"및 "America/New_York"와 같은 Olson DB 시간대 이름을 사용하십시오. 당신은 그들을 here까지 볼 수 있습니다.

간접 객체 표기법 (`새 날짜 시간 :: 형식 : Strptime (..)`) 나쁜 버릇이 사용 세부 사항

관련 문제