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

用perl解析dateTime,精确到微/纳米秒

  •  1
  • balki  · 技术社区  · 14 年前

    我在找一个perl模块,它接受一个日期字符串,比如“11月23日10:42:31.808381”,它的格式类似于“%b%d….”,然后给我一个dateTime对象/或者用同样的方法将其打印到另一种指定的格式。时间:工件的分辨率不超过纳秒。有什么模块可以帮助我吗? Im使用Perl5.8(这没有命名的backreferences)

    2 回复  |  直到 14 年前
        1
  •  3
  •   Dave Cross    14 年前

    DateTime::Format::Strptime 支持微秒和纳秒。

    你的格式有点奇怪,因为它不包括一年。我已经添加了一个你让这个演示代码工作。

    #!/usr/bin/perl
    
    use strict;
    use warnings;
    
    use DateTime::Format::Strptime;
    
    my $strp = DateTime::Format::Strptime->new(
        pattern => '%b %d %Y %H:%M:%S.%6N',
        on_error => 'croak',
    );
    
    my $string = 'Nov 23 2010 10:42:31.808381';
    
    my $dt = $strp->parse_datetime($string);
    
    print $dt->microsecond;
    
        2
  •  0
  •   CyberDem0n    14 年前

    “11月23日10:42:31.808381”--是微秒,不是纳秒

    如果需要微秒,则必须在其中使用Time::HiRes;module和gettimeofday方法。