未在perl中添加到当前时间的持续时间

时间:2015-12-08 03:49:57

标签: perl datetime mason

我想在perl中添加毫秒到当前时间。我写了这段代码:

my $currentTime = DateTime->now(time_zone=>$timezone);
my $endTimeInMills = $details->{'msToEnd'};
my $dealEndTime = $currentTime->add(nanoseconds => ($endTimeInMills * 1000000) );  

我面临的问题是在将纳秒添加到当前时间后,我看到1分钟丢失。喜欢添加时间应该是22:00但它会显示21:59。有谁能说出这个问题?

1 个答案:

答案 0 :(得分:1)

添加足够数量的纳秒将改变您所期望的时间。

use feature qw( say );

use DateTime qw( );

my $dt = DateTime->now( time_zone => 'local' );
say $dt->hms;   # 23:10:10
$dt->add( nanoseconds => 2_000_000_000 );
say $dt->hms;   # 23:10:12

不知道你有什么问题,因为你没有证明它。