Сообщение об ошибке появляется: time2str
ожидает числовое представление даты, но получил строку "2003-07-04T15:56:00"
.
Скорее всего, есть несколько способов решить эту проблему.Один из них - Time :: Local , который может помочь вам создать правильную числовую дату.
Попробуйте заменить
my $time = "2003-07-04T15:56:00";
на:
my $time = timelocal(0,56,15,4,7-1,2003);
Как указал @Jorik, спецификация месяца немного необычна:
Стоит обратить особое внимание на ожидаемые диапазоны для указанных значений.Значением дня месяца является фактический день (т. Е. 1..31), , а месяц - количество месяцев с января (0..11) .Это согласуется со значениями, возвращаемыми из localtime () и gmtime ().
Edit Для общих решений для дат в строках проверьте ответы на этот вопрос: Как я могу разобрать даты и конвертировать часовые пояса в Perl? .