Как проверить даты в Perl?
Как я могу проверить строки даты в Perl? Я хотел бы учесть високосные годы, а также часовые пояса. Кто-то может вводить даты в следующих форматах:
11/17/2008 11/17/2008 3pm 11/17/2008 12:01am 11/17/2008 12:01am EST 11/17/2008 12:01am CST
3 ответов
Я использую DateTime::Format:: DateManip для подобных вещей. Используя ваши даты....
use DateTime::Format::DateManip;
my @dates = (
'11/17/2008',
'11/17/2008 3pm',
'11/17/2008 12:01am',
'11/17/2008 12:01am EST',
'11/17/2008 12:01am CST',
);
for my $date ( @dates ) {
my $dt = DateTime::Format::DateManip->parse_datetime( $date );
die "Cannot parse date $date" unless defined $dt;
say $dt;
}
# no dies.. produced the following....
# => 2008-11-17T00:00:00
# => 2008-11-17T15:00:00
# => 2008-11-17T00:01:00
# => 2008-11-17T05:01:00
# => 2008-11-17T06:01:00
NB. Я на GMT здесь!
CPAN есть много пакетов для работы с датами, такие как DateTime и Дата::Манип. Чтобы проанализировать дату, модуль Date:: Parse в команду timedate может работать (да, есть как DateTime, так и TimeDate).
В общем, когда вам нужно что-то сделать в Perl, проверьте CPAN. Есть модуль для этого. Посмотрите на то, что доступно, и посмотрите, что соответствует вашей ситуации.
удачи :)
я опубликую свои ответы здесь, когда я столкнусь с ними.
использовать время:: Local
http://www.perlmonks.org/?node_id=642627