top

TOP  RSS  Login

Perl - Time::Piece

概要

時間に関するオブジェクトを利用するためのモジュール。Perl 5.10 より標準モジュール。

ビルトイン関数の localtime と gmtime を置き換え、それぞれに対応した時間の情報を持つ Time::Piece オブジェクトを返す。ただし返される Time::Piece オブジェクトは、それが評価されるコンテキストによって振る舞いを変え、ビルトインの localtime / gmtime によって返される値と同様に用いることができる。

使い方

use Time::Piece;

# Time::Piece オブジェクトが返される
my $t = localtime;

# 名前によって時間情報にアクセスできる
print $t->sec;

# ビルトインの localtime が返す値を評価した場合と同じ
print "$t";

メソッドを通じて得られる値

sec / second
min / minute
hour24 時間制の時
mday / day_of_month
mon1 を 1 月とした、月を示す値
_mon0 を 1 月とした、月を示す値
monname / month月の短縮形の英語名(Jan, Feb, Mar...)
fullmonth月の英語名(January, February, March...)
year四桁の西暦
_year1900 年を起点とした年
yy下二桁の年
wday1 を日曜日とした、曜日を示す値
_wday / day_of_week0 を日曜日とした、曜日を示す値
wdayname / day曜日の短縮形の英語名(Sun, Mon, Tue...)
fullday曜日の英語名(Sunday, Monday, Tuesday...)
yday / day_of_year0 を 1 月 1 日とした、日数
isdst / daylight_savings夏時間か否か
$t−>hms(SEP) / time(SEP)SEP(省略可、デフォルトは ":")を区切り文字として、時刻を "時:分:秒"("12:34:56")の形で返す
ymd / date日付を "年-月-日"("2000-02-29")の形で返す
mdy(SEP)SEP(省略可、デフォルトは "-")を区切り文字として、日付を "月-日-年"("02-29-2000")の形で返す
dmy(SEP)SEP(省略可、デフォルトは "-")を区切り文字として、日付を "日-月-年"("29-02-2000")の形で返す
datetimeISO 8601 で規定された形式の文字列("2000-02-29T12:34:56")を返す
cdate"Tue Feb 29 12:34:56 2000" のような cdate 文字列を返す。オブジェクトをスカラコンテキストで評価した時も同じ値を返す。
epochエポック時間からの経過秒
tzoffsetタイムゾーンのオフセット
julian_dayユリウス通日
mjd準ユリウス日
weekISO 8601 で規定された週の番号
is_leap_year閏年か否か
month_last_dayその月の最後の日
time_separator(SEP)デフォルトの時間区切り文字を SEP に指定する
date_separator(SEP)デフォルトの日付区切り文字を SEP に指定する
day_list(@days)デフォルトの曜日の名前を指定する("日","月","火"...)
mon_list(@days)デフォルトの月の名前を指定する("一月","二月","三月"...)
strftime(FORMAT)POSIX::strftime と同様に FORMAT で指定された形式で時刻を返す(ただし、POSIX をロードするオーバーヘッドはない)

クラスメソッド

  • Time::Piece->strptime(STRING, FORMAT) - strptime と同様に STRING を FORMAT で指定された形式で解析し、Time::Piece オブジェクトを返す

オブジェクトの比較

"<", ">", "==" など比較演算子を用いて、Time::Piece オブジェクト同士を比較することができる。

use Time::Piece;

my $now = localtime;
my $yesterday = $now - (60 * 60 * 24);

if($now > $yesterday){
  print "true";
}

リンク

Last modified:2008/12/07 16:18:04

Vh

0.314922