2015-12-08 81 views
0

我想在perl中添加毫秒到當前時間。我寫了這樣的代碼:在perl中沒有被添加到當前時間的持續時間

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

我面臨的問題是在將當前時間增加納秒後,我看到1分鐘丟失。加入時間之後應該是22:00,但它會顯示21:59。任何人都可以說出問題嗎?

+0

請提供問題的演示。 – ikegami

+0

是$ endTimeInMills否定? –

回答

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 

不知道你有什麼問題,因爲你沒有證明它。