Parsedate вопрос в Perl - PullRequest
       2

Parsedate вопрос в Perl

1 голос
/ 05 августа 2010

В Perl, почему я получаю разные результаты от parsedate (2010-7-2 13: 0: 0) и parsedate (2010-7-2 13: 00: 0)?

Ответы [ 2 ]

5 голосов
/ 05 августа 2010

Строка 2010-7-2 13:0:0 не в допустимом формате и фактически не анализируется вообще (кажется), о чем свидетельствует тот факт, что parsedate("2010-7-2") возвращает для меня то же значение, что и parsedate("2010-7-2 13:0:0").

Исходя из документов , он просто анализирует YYYY-MM-DD, но вообще не анализирует 13:0:0, поскольку ожидает, что он будет в формате ЧЧ: ММ, а не ЧЧ: М формат. Как правило, для правильного ввода необходимо использовать две цифры для минут.

0 голосов
/ 15 августа 2015

Чтобы обрабатывать формат даты с большей гибкостью, попробуйте использовать DateTime :: Format :: Strptime

my $strp = DateTime::Format::Strptime->new(
    pattern   => '%Y-%m-%d %T',
    locale    => 'en_AU',
    time_zone => 'Australia/Melbourne',
);

my $dt1 = $strp->parse_datetime('2010-7-2 13:0:0');
my $date_1 = $strp->format_datetime($dt1);

$ date_1 теперь преобразуется в хорошо отформатированный формат даты ".00:00" .Затем вы можете позвонить в parsedate ($ date_1) и получить эпоху.

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