#perl #date #datetime
#perl #Дата #дата-время
Вопрос:
Существует ли модуль для perl, который будет преобразовывать этот формат даты в DateTime
объект?
Четверг, 13 сентября 2007 г.
Я пробовал DateTime::Format::Natural
, но, похоже, это не работает.
Я бы предпочел функцию, которая не возражает, если, например, нет дня недели. Я не могу быть уверен, будут ли данные согласованными.
Ответ №1:
Этого можно достичь, используя DateTime::Format::Flexible.
use DateTime::Format::Flexible qw( );
my $dt = DateTime::Format::Flexible->parse_datetime(
'Thursday, September 13, 2007',
lang => [ 'en' ], # Optional
);
Если бы вы знали конкретный формат (как в вашем первоначальном вопросе), я бы рекомендовал DateTime::Format::Strptime.
use DateTime::Format::Strptime qw( );
my $format = DateTime::Format::Strptime->new(
pattern => '%A, %B %e, %Y',
locale => 'en',
on_error => 'croak',
);
my $dt = $format->parse_datetime('Thursday, September 13, 2007');