Perlの日付扱いに関する質問です。


'yyyy/mm/dd 24H:MI:SS'形式の日付+時間データをepoc秒に直す方法を探ってます。(最終的に二つの日付+時間の秒差を求めたい)
1970より前のデータは無しと仮定します。

良い日付&時間操作モジュールなどはあるでしょうか?

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/06/25 12:47:21
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:b-wind No.2

回答回数3344ベストアンサー獲得回数440

ポイント40pt

パースだけなら、Date-Parse がいいとおもう。

Date::Parse - Parse date strings into time values - search.cpan.org


そのほかの日時関連の操作については、Date-Time 及びその派生モジュールが便利です。

DateTime - A date and time object - search.cpan.org

id:likk

ほぼそのまま突っ込めるのが素晴らしいです。

my $date_time ='yyyy/mm/dd 24H:MI:SS';

$date_time =~ s{/}{-}g;

my $epoc = str2time($date_time);

今回はDate::Parseモジュールを使わせていただきます。

有難う御座いました。

2007/06/25 12:45:22

その他の回答2件)

id:maq No.1

回答回数81ベストアンサー獲得回数5

ポイント30pt

http://search.cpan.org/~stbey/Date-Calc-5.4/Calc.pod

このDate-Calcモジュールを使うのが良いかと思います。

差分であれば、Delta_Days辺りを使用すればよいと思います。

id:likk

非常に便利なモジュールですね

今回は使いませんが、使う機会がありそうなので感謝いたします。

2007/06/25 12:45:14
id:b-wind No.2

回答回数3344ベストアンサー獲得回数440ここでベストアンサー

ポイント40pt

パースだけなら、Date-Parse がいいとおもう。

Date::Parse - Parse date strings into time values - search.cpan.org


そのほかの日時関連の操作については、Date-Time 及びその派生モジュールが便利です。

DateTime - A date and time object - search.cpan.org

id:likk

ほぼそのまま突っ込めるのが素晴らしいです。

my $date_time ='yyyy/mm/dd 24H:MI:SS';

$date_time =~ s{/}{-}g;

my $epoc = str2time($date_time);

今回はDate::Parseモジュールを使わせていただきます。

有難う御座いました。

2007/06/25 12:45:22
id:MAS3 No.3

回答回数40ベストアンサー獲得回数2

ポイント30pt

凝ったことをしないのであれば標準モジュールのTime::Localでもできます。

http://perldoc.perl.org/Time/Local.html

use strict;
use Time::Local;

my ($year, $month, $day, $hour, $min, $sec)
    = ('2007/06/22 23:01:02' =~ m|(\d{4})/(\d{2})/(\d{2})\s(\d{2}):(\d{2}):(\d{2})|);
my $time = timelocal($sec, $min, $hour, $day, $month - 1, $year - 1900), "\n";
print $time, "\n";
id:likk

標準モジュールであったんですね。

localtime関数のほぼ真逆?

$month - 1, $year - 1900

を忘れそうなので注意します。

Date::Parseも中ではTime::Local

を使ってる様子。

追加モジュールをインストールできない環境では重宝しそうです。

感謝!!

2007/06/25 12:45:25
  • id:maq
    http://search.cpan.org/~tchatzi/Date-Calc/Calc.pod
    Date-Calcモジュールのリンク先が古いバージョンでしたorz。
    使われないとのことですが、一応書いておきます。
  • id:likk
    わざわざ、有難う御座います。
    コレだけの機能が詰まったモジュールなので、確実に何かには使うと思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません