Time-Moment さまざまなコーディングスタイルを意識した日付と時間を得るモジュール
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