技術メモ

神奈川在住のITエンジニアの備忘録。おもにプログラミングやネットワーク技術について、学んだことを自分の中で整理するためにゆるゆると書いています。ちゃんと検証できていない部分もあるのでご参考程度となりますが、誰かのお役に立てれば幸いです。

perlで現在時刻を (秒以下の精度で) 取得する。

perl には、現在時刻を取得する関数として localtime 関数がある。ただし、この関数では秒以下の精度で時刻を取得できない。そうしたい場合は、Time::HiRes モジュールの gettimeofday 関数を取得する。gettimeofday関数を使ったサンプルを以下に示す。

use strict;
use warnings;
use Time::HiRes "gettimeofday";

my $currentTimeStr = getCurrentTimeStr();
print $currentTimeStr;

sub getCurrentTimeStr {
    my ($epochSec, $microSec) = gettimeofday();
    my ($sec, $min, $hour, $day, $mon, $year) = localtime($epochSec);
    $year += 1900;
    $mon++;
    return "$year/$mon/$day $hour:$min:$sec.$microSec";
}

上記を実行すると、現在時刻として、例えば、
2018/10/20 23:35:29.844079
が出力される。上記の実行結果の通り、秒以下(マイクロ秒)の精度で現在時刻を取得できる。