Time-Moment はC言語で記述されたPerl用モジュールです。Perlには日付と時間を得る方法がいくつもあります。しかし、ソフトウェアエンジニアは使い勝手やさまざまな事情から、日付と時間を得る関数やモジュールを改めて定義することがあるのではないでしょうか。Time-Moment を選択肢に加えることで、開発の手間が減るかも知れませんよ。

Time-Moment の主な特徴について

1) 現在の日時や指定日時を得るために、いくつかのコンストラクタがあります。

現在の日時や別のオブジェクトから日時を得たり、指定日時を文字列で指定することができます。

new
now
now_utc
from_epoch
from_object
from_string

2) さまざまなコーディング・スタイルに合わせて選択ができます。

例えば、日時の比較をメソッドと比較演算子のどちらでも行えるようにメソッドが用意されています。

is_before
is_after
is_equal
compare


$integer      = $tm1 < => $tm2;
 
$boolean      = $tm1 == $tm2;
$boolean      = $tm1 != $tm2;
$boolean      = $tm1 < $tm2;
$boolean      = $tm1 >  $tm2;
$boolean      = $tm1 < = $tm2;
$boolean      = $tm1 >= $tm2;

3) 高速に結果を得ることができます。

処理速度の比較を目的としたベンチマークテスト用のスクリプトが用意されています。実行結果は次の通りです。

dev / bench.pl


Benchmarking constructor: ->new()
                 Rate     DateTime Time::Moment
DateTime       9772/s           --         -99%
Time::Moment 934817/s        9466%           --

Benchmarking constructor: ->now()
                 Rate     DateTime  Time::Piece Time::Moment  localtime()
DateTime       5060/s           --         -90%         -97%         -97%
Time::Piece   51169/s         911%           --         -70%         -71%
Time::Moment 168269/s        3226%         229%           --          -3%
localtime()  174349/s        3346%         241%           4%           --

Benchmarking constructor: ->now_utc()
                 Rate     DateTime  Time::Piece     gmtime() Time::Moment
DateTime       9519/s           --         -86%         -98%         -99%
Time::Piece   65677/s         590%           --         -87%         -90%
gmtime()     518853/s        5351%         690%           --         -24%
Time::Moment 686601/s        7113%         945%          32%           --

Benchmarking constructor: ->from_epoch()
                  Rate     DateTime  Time::Piece Time::Moment
DateTime       10050/s           --         -87%         -99%
Time::Piece    79672/s         693%           --         -94%
Time::Moment 1414518/s       13974%        1675%           --

(以下、省略)

Time-Moment のインストール

sudo cpanm Time::Moment でインストールできます。

このモジュールも含めて、日付と時間を得るモジュールはどれも優れています。選択肢が増えることは望ましいことです。定義済みのモジュールを利用して、作業が楽になって頂ければと考えます。

Time-Moment はC言語で記述されたオープンソース(Artistic License/GPL)のPerl用モジュールです。

Time::Moment - Represents a date and time of day with an offset from UTC

chansen/p5-time-moment