2017-10-04 194 views
-8

計算2個給定時間戳之間差異的代碼。 Start_Time="2017-09-19 19:36:12.763"End_Time="2017-09-19 19:36:22.72"我想在上面兩個時間戳之間考慮毫秒的差異。如何計算PERL中2個時間戳之間的差異

這是我的嘗試:

#!/usr/bin/perl 

use strict; 
use warnings; 
use Date::Parse; 
use Date::Format; 

$startdat = "2007-11-17 12:51:22"; 
$stopdate = "2007-11-17 12:52:22"; 

my ($years, $months, $days, $hours, $mins, $secs) = split /\W+/, $startdat; 
my ($yeart, $montht, $dayt, $hourt, $mint, $sect) = split /\W+/, $stopdate; 

my $times = timelocal($secs,$mins,$hours,$days,$months,$years); 
my $timet = timelocal($sect,$mint,$hourt,$dayt,$montht,$yeart); 

$time = $timet - $times; 

print $time; 

但是,這給了我一個錯誤:在@公司無法定位日期/ Parse.pm。

+1

@abbasp:另外,請考慮給你的問題一個更好的標題。 –

+1

@abbasp:我已經修復了您的代碼格式。這可能值得閱讀[Markdown幫助](https://stackoverflow.com/editing-help)。 –

+0

@Borodin:無論OP更新了評論中的代碼,我都編輯了這個問題,不幸的是,在我編輯過相同的代碼之前,有人編輯了這個問題。這是問題。不過,我會按照你的意見。 – ssr1012

回答

4

您正在收到該錯誤消息,因爲未安裝Date :: Parse。這個模塊不是標準Perl發行版的一部分,需要單獨安裝。如果你想使用它,那麼你需要安裝它。

但是,

雖然你在代碼中使用Date :: Parse和Date :: Format,但實際上並沒有使用它們。所以你可以刪除這兩行。那麼你的代碼可能會工作。

Date :: Parse和Date :: Format實際上是相當過時的模塊。對於Perl中的日期和時間工作,我推薦使用Time::Piece(這是Perl庫的標準部分)或DateTime(需要安裝它)。

相關問題