perl の localtime

たまに利用するけどよく忘れるのでメモ

localtimeは下記のリストを返す。

1. 秒
2. 分
3. 時
4. 日
5. 月(0〜11) 1月の場合に0、2月の場合に1、……、12月の場合に11
6. 年(西暦から1900を引いた値) 2008年の場合に108
7. 曜日(0:日、1:月、……、6:土)
8. 年明けからの経過日数(1月1日の時に0)
9. サマータイムが有効の場合正の整数、無効の場合0、不明の場合負の整数

使用例:現在時刻を取得し時分秒を表示

my @now = localtime;
print "$now[2]時$now[1]分$now[0]秒\n";

使用例:1時間後はtimeに3600を足して

my @time = localtime(time + 3600);
$time[5] += 1900;
$time[4] += 1;
print "$time[5]年$time[4]月$time[3]日 $time[2]時$time[1]分$time[0]秒\n";

ピンポイントでほしい場合はスライスで

my ($min , $hour) = (localtime)[1,2];