Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発ならPerlが便利
  1. Perl
  2. 標準関数
  3. gmtime

gmtime関数 - 現在の日付と時刻(協定世界時)を取得する

gmtime関数を使用すると、現在の日付と時刻を協定世界時で取得するにはを使用します。gmtimeという名前ですが、現在はグリニッジ標準時(GMT)を取得する関数ではなく協定世界時を取得する関数になっています。

#    秒   分    時     日     月    年     曜日   年初か 夏時間を
#                                                 らの   適用して
#                                                 経過日 いるか
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = gmtime;

# 時刻文字列
my $localtime = gmtime;

ローカル時刻を取得したい場合はlocaltime関数を使用してください。

エポックからの経過時間だけを知るだけでよい場合はtime関数を使用してください。

より便利に日付・時刻を扱いたい場合はTime::Pieceもお勧めです。

日付・時刻に関する一般的な情報については、以下を参考にしてください。

gmtime関数のサンプル

gmtime関数のサンプルです。

use strict;
use warnings;

print "(1)現在の日付と時刻(協定世界時)を取得する。\n";
#    秒   分    時     日     月    年     曜日   年初か 夏時間を
#                                                 らの   適用して
#                                                 経過日 いるか
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = gmtime;

# localtime関数からは1900年から数えた年が返却される。
$year += 1900;

# 月は0から始まるので、表示するときは1を加える。
$mon++;

# 日曜日は0になります。
my @day_of_week = qw/日 月 火 水 木 金 土/;

print "現在は、$year年$mon月$mday日 $hour時$min分$sec秒です。";
print "曜日は" . $day_of_week[$wday] . "曜日です。\n\n";
print "1年で数えると$yday日が経過しました。\n\n";

if ($isdst){
  print "現在夏時間が適用されいます。\n\n";
}
else {
  print "現在夏時間は適用されていません。\n\n";
}

print "(2)文字列として現在の日付(協定世界時)を取得する。\n";
my $date_str = gmtime;
print $date_str . "\n";