
EXPRを省略するとlocaltime(time)が実行される。
time関数では1970年1月1日からの経過秒数を返すが、localtimeはtime関数が返す値をローカル時間での年月日時分秒などの要素に変換をする。print time; で 1018405401 と返したとき
print localtime(time); は 2123111031023990 となる。
これは 21=秒, 23=分, 11=時, 10=日, 3=4月, 102=2002年, 3=水曜日, 99=99日, 0=非サマータイムの意味。
変数に代入することによって以下のような結果を得られる。
| localtime(time)が 2123111031023990 のとき | |||
| $sec | 21 | 21秒 | 0〜59 |
| $min | 23 | 23分 | 0〜59 |
| $hour | 11 | 11時 | 0〜23 |
| $mday | 10 | 10日 | 1〜31 |
| $mon | 3 | 4月 | 0〜11(1月は0) |
| $year | 102 | 2002年 | 1900を引いた年数 |
| $wday | 3 | 水曜日 | 0〜6(日曜日は0) |
| $yday | 99 | 99日 | 1月1日からの経過年数 |
| $isdst | 0 | 0 | サマータイム期間中は1 |
2002年04月10日 のように表示するには下のようにsprint関数を使う。
Perlライブラリモジュールの Time::Local には、localtime の逆変換をするサブルーチン timelocal() がある。Time::Local については「経過日数の計算」の「経過日数を求める」を参照。