Perl / Regex формат даты конвертировать - PullRequest
5 голосов
/ 13 августа 2011

Я пытаюсь преобразовать строку в формате даты, например '12/11 августа' .. в 'ГГГГ-ММ-ДД', который в этом примере будет '2011-08-12'.

Какой лучший Perl / Regex использовать для этого преобразования?я смог сделать это, проанализировав каждый и преобразовав его вручную ... но я предполагаю, что есть более быстрый способ сделать это с помощью perl / regex.Спасибо.

Ответы [ 2 ]

4 голосов
/ 13 августа 2011

Я бы порекомендовал вам не разбирать такие даты самостоятельно, особенно пытаясь придумать одно или два регулярных выражения.Для этого существует множество существующих модулей Perl, например Date::Manip.В этой статье обоснованно рассмотрено множество вариантов .

2 голосов
/ 13 августа 2011

Time :: Piece долгое время был основным модулем, у него есть возможность анализировать строку в объект Time :: Piece, который он затем может отформатировать для вас в 10 миллиардах различных форматов. Если Time :: Piece не установлен, вы можете попробовать поискать некоторые другие сотни модулей даты и времени, которые вы видите в списке на cpan. (используйте одну строку: perl -e "используйте Module :: IHope :: IsHere || die \ 'Not found \'").

`Time::Piece->strptime(STRING, FORMAT)
                        # see strptime man page. Creates a new
                        # Time::Piece object`

Если мне не удастся начать установку модулей в моем домашнем каталоге.

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