2011-09-09 19 views
0

私はSIPメッセージを解析しています。人間が読める部分(つまり、2011/09/08 00:10:17.997)にミリ秒を挿入する必要があります。 Perl、私はHuman Readable to Epochを使用していますが、ミリ秒は含まれていないことがわかりましたが、これは可能ですか? CPANにDateTimeが見つかりましたが、インストールに問題があります。ので、他のオプションを探して: 例Perl人間が読む時間をミリ秒でEPOCHに

$epoch = convert(2011/09/08 00:10:17.997) 
print $epoch 

と版画:1315183552クイックや汚れ

+3

なぜ、あなたは 'DateTime'モジュールをインストールしようとしているエラーについて聞かないのですか? – Mat

+0

正しいことが必要です1315433417 –

答えて

4

修正それが防止されているシステムでは何でも問題あなたはモジュールをインストールすることができません。

例外を除いて、エポック時間には2番目の解像度しかありません。ミリ秒を取り除き、それは本当にミリ秒を使用して、第2ラウンド、重要ならTime::Local(あなたのSIPメッセージを自分で解析する必要があります)

$timestamp = "2011/09/08 00:10:17.997"; 
$timestamp =~ /(\d{4})\/(\d{2})\/(\d{2}) (\d{2}):(\d{2}):(\d{2})/; 

# ($sec,$min,$hour,$mday,$mon,$year); 
$epoch = timelocal($6, $5, $4, $3, $2 - 1, $1 - 1900); 

を使用して変換します。

+1

Time :: HiRes :: timeには、DateTime :: hires_epocと同様に10進数のミリ秒が含まれます perl -MTime :: HiRes = e 'print time'#1315549005.29001 – CoffeeMonster

+2

これは...エポックタイム*ではありません。 –

1

あなたがLinuxである場合:

$epoch = `date -d "2011/09/08 00:10:17.997" +%s`; print $epoch; 
+0

時間を修正するために管理されているOK(実行中のMAC)は提案を試します – spicyramen

関連する問題