- ベストアンサー
ファイル作成日
windows2000上で、perlを使っています。 ファイルをオープンして、そのファイルの作成日付を知りたい、ということで、 ststを使って、求めようとしました。 $modtime = (stat("$filename"))[9] ; print "$modtime\n"; ところが、具体的な出力は、 1177281000 のようなものでした。 2007/05/01がでてくるものと期待したのですが、どのようにすれば、正しい、日付を得ることができるのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
別に間違った情報が出ているわけではなくて、 それはある時間を表すデータなんですけどね (epochからの経過秒数)。 これを人間がわかりやすい表記にするには幾つかやり方はあります。 use strict; use warnings; my $target = 'test.dat'; my $ctime = (stat $target)[9]; print scalar localtime($ctime), "\n"; my ($year, $month, $day) = (localtime($ctime))[5,4,3]; printf "%04d/%02d/%02d\n", $year+1900, $month+1, $day; use POSIX qw(strftime); print strftime("%Y/%m/%d", localtime($ctime)), "\n"; 実行結果: Mon Oct 30 17:44:11 2006 2006/10/30 2006/10/30
その他の回答 (1)
- hito-koto
- ベストアンサー率53% (14/26)
time関数同様、1970年1月1日からの経過秒数が返されていますので、 localtime関数等で変換する必要があります。 "perl stat localtime"で検索すると、参考になりそうなページがいくつか見つかるかと思います。
お礼
ありがとうございます。理解しました。
お礼
ありがとうございます。うまくいきました。