Как преобразовать метку времени mySQL в RFC-822 с помощью Perl?

У меня есть данные, хранящиеся в таблице mySQL под типом столбца «отметка времени», которые я хотел бы вывести как дату, соответствующую RFC-822, для включения в действительный RSS-канал.

Я знаю, как я могу просто вывести текущее время как объект RFC-822 с помощью perl, но я не понял, как преобразовать существующую строку. Строка имеет следующий формат: ГГГГ-ММ-ДД ЧЧ: ММ: СС


person WinnPh    schedule 10.02.2010    source источник


Ответы (2)


Вот что в итоге сработало для меня:

use POSIX qw( strftime );
...
$timestamp =~ /^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/;
$rssTS = strftime('%a, %d %b %Y %T %Z', $6, $5, $4, $3, $2 - 1, $1 - 1900, -1, -1, -1);
person WinnPh    schedule 12.02.2010
comment
Это сработало и для меня. Спасибо, что разместили это. - person Wick; 12.03.2015

Интересно, помогает ли здесь CPAN? Как насчет DateTime :: Format :: DateParse?

person ziya    schedule 10.02.2010
comment
Я попытался выяснить это - и несколько других модулей на CPAN - но они казались слишком запутанными и требовали использования нескольких модулей (один для преобразования моей временной метки во время из эпохи, а другой для преобразования этого в правильный вывод) . Я уверен, что есть более элегантное решение, чем то, что я использовал, но я не смог его найти. - person WinnPh; 14.02.2010