新しく質問する

ファイル作成日

役に立った:1件
  • 質問者:noname#95859
  • 投稿日時:2007/05/01 10:53
  • 困り度:すぐに回答が欲しいです

windows2000上で、perlを使っています。
ファイルをオープンして、そのファイルの作成日付を知りたい、ということで、 ststを使って、求めようとしました。
$modtime = (stat("$filename"))[9] ;
print "$modtime\n";

ところが、具体的な出力は、
1177281000
のようなものでした。 2007/05/01がでてくるものと期待したのですが、どのようにすれば、正しい、日付を得ることができるのでしょうか?

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:1件)
  • 参考になった:0件

No.2ベストアンサー10pt

  • 回答者:hito-koto
  • 回答日時:2007/05/01 11:22

time関数同様、1970年1月1日からの経過秒数が返されていますので、
localtime関数等で変換する必要があります。

"perl stat localtime"で検索すると、参考になりそうなページがいくつか見つかるかと思います。

通報する

この回答へのお礼

ありがとうございます。理解しました。

  • 参考になった:0件

No.1ベストアンサー20pt

  • 回答者:sakusaker7
  • 回答日時:2007/05/01 11:21

別に間違った情報が出ているわけではなくて、
それはある時間を表すデータなんですけどね
(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

通報する

この回答へのお礼

ありがとうございます。うまくいきました。

  
このQ&Aは役に立ちましたか?(役に立った:1件)

このページのトップへ