0

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、次の時間で差し引く必要があるようにする必要があります。

同じ機能があれば教えてください。

4

1 に答える 1

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 モジュールのデルタ メソッドの 1 つを呼び出して、必要なものを取得するだけです :)

ここにあなたのためのいくつかのリンクがあります:

于 2013-08-01T06:01:59.897 に答える