Учитывая строку, которая представляет дату/время в формате ISO8601 (например. 20100723T073000
), я должен в конечном счете проанализировать это в предоставленный пользователями формат с помощью генерала strftime
строка формата. Чтобы сделать это, я должен преобразовать метку времени ISO8601 в метку времени Unix. Существует огромная сумма модулей управления датой/временем для Perl, и я немного поражен. Какие-либо предложения о том, как сделать это?
Модуль чемпиона для обработки дат, времени, продолжительности, часовых поясов и форматов - DateTime . Получив объект DateTime, вы можете выполнять с ним огромное количество операций, таких как добавление / вычитание других объектов DateTime или объектов DateTime :: Duration , либо его распечатка в другом формате.
use strict; use warnings;
use DateTime;
use DateTime::Format::ISO8601;
my $dt = DateTime::Format::ISO8601->parse_datetime('20100723T073000');
print $dt->strftime('%F %T');
выводит: «2010-07-23 07:30:00»