ファイル作成日
windows2000上で、perlを使っています。
ファイルをオープンして、そのファイルの作成日付を知りたい、ということで、 ststを使って、求めようとしました。
$modtime = (stat("$filename"))[9] ;
print "$modtime\n";
ところが、具体的な出力は、
1177281000
のようなものでした。 2007/05/01がでてくるものと期待したのですが、どのようにすれば、正しい、日付を得ることができるのでしょうか?
回答(2件)
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
No.2ベストアンサー10pt
time関数同様、1970年1月1日からの経過秒数が返されていますので、
localtime関数等で変換する必要があります。
"perl stat localtime"で検索すると、参考になりそうなページがいくつか見つかるかと思います。
この回答へのお礼
ありがとうございます。理解しました。
No.1ベストアンサー20pt
別に間違った情報が出ているわけではなくて、
それはある時間を表すデータなんですけどね
(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
この回答へのお礼
ありがとうございます。うまくいきました。
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示












