在perl中,我们可以直接得到以下格式给出的时间差异吗?
要求是我必须将绝对时间转换为相对时间:
输入:
2013/06/19 05:16:51:209 INFO
2013/06/19 05:16:54:365 INFO
2013/06/19 05:16:54:365 INFO
预期产出:
000000.000000 INFO
000003.156000 INFO
000003.156000 INFO
所以我必须将05:16:51:209
作为参考时间并将其设为0
然后需要在下次减去它。
如果有相同的功能,请告诉我。
答案 0 :(得分:0)
这是一个非常复杂的问题(我喜欢这个:D)。但我会给你一个解决方案(它没有完成,但你的大部分问题应该被清除):
use DateTime::Format::Strptime;
my $parser = DateTime::Format::Strptime->new(
pattern => '%y/%m/%d %H:%M:%S:%N',
on_error => 'croak',
);
my @dates = (
'2013/06/19 05:16:51:209 INFO',
'2013/06/19 05:16:54:365 INFO',
'2013/06/19 05:16:54:365 INFO',
);
my %dates;
$dates{$_} = $parser->parse_datetime( $_ ) foreach @dates;
我使用[DateTime::Format::Strptime]
来解析Datetime并获取DateTime对象。然后你只需要调用DateTime模块的delta-Methods之一来获得你需要的东西:)
以下是一些链接: