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関数を使う。