CPAN имеет то, что вам нужно: DateTime :: Format :: HTTP .
Описание:
Этот модуль предоставляет функции, которые имеют дело сформаты дат, используемые протоколом HTTP (а затем и некоторые другие).
Сводка:
use DateTime::Format::HTTP;
my $class = 'DateTime::Format::HTTP';
$string = $class->format_datetime($dt); # Format as GMT ASCII time
$time = $class->parse_datetime($string); # convert ASCII date to machine time
Обновление
Вы можете передатьв часовом поясе исходных данных используйте DateTime set_time_zone () , чтобы изменить часовой пояс, а затем используйте strftime , чтобы сгенерировать строку в формате «HTTP».Например:
my $dt = DateTime::Format::HTTP->parse_datetime( '2010-03-09T12:34:56', 'EST' );
warn $class->format_datetime( $dt );
warn $dt->strftime( "%a, %d %b %Y %H:%M:%S %Z" );
$dt->set_time_zone( 'CET' );
warn $dt->strftime( "%a, %d %b %Y %H:%M:%S %Z" );
Tue, 09 Mar 2010 17:34:56 GMT
Tue, 09 Mar 2010 12:34:56 EST
Tue, 09 Mar 2010 18:34:56 CET
(номера строк удалены для ясности.)