将perl中的dateTime解析为微/纳秒

时间:2010-11-23 09:23:59

标签: perl datetime

我正在寻找一个perl模块,它采用像这样的日期字符串“Nov 23 10:42:31.808381”,其格式类似于“%b%d ....”这个并给我一个dateTime对象/或打印它以相同的方式指定为另一种格式。时间::片段的分辨率不超过纳秒。有什么模块可以帮助我吗? 我使用perl 5.8(这没有命名反向引用)

2 个答案:

答案 0 :(得分:3)

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;

答案 1 :(得分:0)

“Nov 23 10:42:31.808381” - 是微秒,而不是纳秒

如果你需要微秒,你必须使用Time :: HiRes;模块和gettimeofday方法。