localtime関数

stat関数で返される日数はタイムスタンプというもので、1038368942のような形をしている。これを人間を読みやすい形式に変換するには、スカラーコンテキストで、localtime関数を使う。

#!/usr/bin/perl
use strict;
use warnings;

my $file ="io.pl";
my @stat = stat $file;

print "$fileの最終更新時刻のタイムスタンプは$stat[9]です。\n";

my $date = localtime $stat[9];
print "$fileの最終更新時刻は$dateです。\n";
io.plの最終更新時刻のタイムスタンプは1138351216です。
io.plの最終更新時刻はFri Jan 27 17:40:16 2006です。


リストコンテキストでは、数値のリストを返す。

0  秒
1  分
2  時
3  日
4  月 0(1月)〜11(12月)
5  年(1900を引いた年数)
6  曜日 0(日曜日)〜6(土曜日)
7  1月1日からの経過年数
8  サマータイム期間中は1
#!/usr/bin/perl
use strict;
use warnings;

my($sec, $min,  $hour, $day, $mon, 
  $year, $wday, $yday, $isdst) = localtime;

printf "%d年%d月%d日(%s) %d時%d分%d秒\n",
        $year + 1900, $mon + 1, $day,
        qw/日 月 火 水 木 金 土/[$wday],
        $hour, $min, $sec;
2006年1月29日(日) 13時21分36秒

現在のタイプスタンプを得るにはtime関数を使う。そしてlocaltime関数は、引数を省略すると、time関数で返される値を使う。
また、国際標準時間で表した時刻を得たい場合は、localtime関数の代わりにgmtime関数を使う。