代码之家  ›  专栏  ›  技术社区  ›  Kelvin

Perl中的ParseDate问题

  •  1
  • Kelvin  · 技术社区  · 16 年前

    在Perl中,为什么我从ParseDate(2010-7-2 13:0:0)和ParseDate(2010-7-2 13:00:0)得到不同的结果?

    2 回复  |  直到 11 年前
        1
  •  5
  •   eldarerathis sreeji    16 年前

    这个 2010-7-2 13:0:0 字符串的格式无效,并且实际上根本没有被分析(它似乎),这一事实证明 parsedate("2010-7-2") 返回的值与 parsedate("2010-7-2 13:0:0") 为了我。

    基于 the docs ,它只是简单地解析YYYY-MM-DD,而不是解析 13:0:0 因为它希望它是hh:m m格式,而不是hh:m格式。基本上,为了使其成为有效的输入,您必须在分钟内使用两位数字。

        2
  •  0
  •   Shuwn Yuan Tee    11 年前

    要更灵活地处理日期格式,请尝试使用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现在转换为格式良好的日期格式“2010-07-02 13:00:00”。然后您可以调用parseDate($date_1)&get epoch。