Как преобразовать объект DateTime в формат HTTP? - PullRequest
2 голосов
/ 24 сентября 2010

Я использую модуль DateTime Perl, чтобы получить время в определенном часовом поясе.Результат времени выглядит следующим образом:

2010-09-24T02: 18: 52

Как преобразовать его в формат HTTP перед печатью?

1 Ответ

4 голосов
/ 24 сентября 2010

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

(номера строк удалены для ясности.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...