Perl:localtime()やgmtime()をスカラーで評価
技術ドキュメント目次 -> Perl -> localtime()やgmtime()をスカラーで評価本技術ドキュメントは、2002~2004年頃に作成したものが多いです。
内容が古くなっていることもあるかと思いますが、ご了承ください。
【低価格SSL証明書】弊社運営の低価格SSL証明書販売サイト、翌月末払いなど請求書払いも可能。
◆ localtimeとgmtimeとは
localtime 関数は、time関数が返す時刻(1970年から現在までの秒数)をローカルの時間に変換して、
各要素(秒,分,時,日,月,年....)を配列を返す目的でよく使用される関数です。
また、gmtime関数は、それと同じような動作を、
グリニッジ標準時(イギリスの時間)に変換して行う関数になります。
localtime関数・gmtime関数の構文は次のとおりです。
localtime [EXPR] gmtime [EXPR] ※どちらも、EXPRを省略すると現在のtime()値が使用されます。 |
localtime 関数の簡単な例は次のようになるかと思います。
my @lt = localtime(time() - (60*60*24)); my $wk_yea = $lt[5] + 1900; my $wk_mon = $lt[4] + 1; my $wk_day = $lt[3]; print "昨日は、$wk_yea年$wk_mon月$wk_day日でした。\n"; |
上記の実行例は次のようになります。
$ perl test.pl 昨日は、2005年7月21日でした。 $ |
◆ localtime()やgmtime()をスカラーで評価
上記の例では、localtime関数やgmtime関数の戻り値を配列として扱っていましたが、戻り値をスカラーとして扱うと、C言語の ctime関数の出力のような値が戻って結構便利です。
サンプルの実行結果は次のようになるのですが、
例えば、PerlのCGIの中からCookieを出力するときに、
そのCookieの有効期限として指定する GMTの時刻文字列を作成するときなどにも
結構便利かと思います。
my $str1 = localtime(time+60*60*24*365*5); print $str1 . "\n"; my $str2 = gmtime(time+60*60*24*365*5); print $str2 . "\n"; |
上記のコードを実行すると次のような結果が出力されます。
5年後の日時文字列をJSTとGMTで表示しています。
Wed Jul 21 21:51:46 2010 Wed Jul 21 12:51:46 2010 |
■ Perl についての他のドキュメント
- %SIGによるシグナルの制御
- CSV等区切り文字で連結されたデータを操作(joinとsplit)
- Digest::MD5
- Digest::SHA1
- localtime()やgmtime()をスカラーで評価
- 正規表現において // の代わりに || を使用する
- 正規表現における () と (?:) の違い
- 配列・連想配列を条件に基づいてソート(sort)
■ 他のグループのドキュメント
Apache / Linux / FreeBSD / OpenSSL / Perl / HTTPプロトコル / Jakarta Tomcat / Java / NetBSD / Oracle / PostgreSQL / UNIX の C言語 / UNIX のコマンド / Windows / bind / システム運用TIPS