如何在Perl中验证日期字符串?我想说明leap年以及时区。有人可以用以下格式输入日期:

2008年11月17日
2008/11/17下午3
2008/11/17上午12:01
美国东部标准时间2008年11月17日上午12:01
2008年11月17日中午12:01 CST

最佳答案

我将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

注意我在这里格林尼治标准时间(GMT)!

关于perl - 如何在Perl中验证日期?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/297398/

10-15 11:34