Time::Piece
perl 内蔵の日時オブジェクトを取り扱う。 DateTimeパッケージの代替として利用可能。perl 5.10以降で利用可能。
use Time::Piece;
標準の localtime と gmtime 関数を、オブジェクトを返す実装のものに置き換える。
my $t = localtime();
print ref($t), "\n";
---
Time::Piece
$t->sec # $t->second も可
$t->min #
$t->minute も可
$t->hour # 24時制
$t->mday
# $t->day_of_month も可
$t->mon # 1 = 一月
$t->_mon
# 0 = 一月
$t->monname # Feb
$t->month
# $t->monname と同じ
$t->fullmonth # February
$t->year # 0始まり(AD0年は、もちろん、BC1年)
$t->_year
# 年から1900引いたもの
$t->yy # 2桁の年
$t->wday
# 1 = 日曜
$t->_wday # 0 = 日曜
$t->day_of_week
# 0 = 日曜
$t->wdayname # Tue
$t->day
# wdayname と同じ
$t->fullday # Tuesday
$t->yday
# $t->day_of_year も可, 0 = Jan 01
$t->isdst #
$t->daylight_savings も可。
$t->hms # 12:34:56
$t->time # $t->hms と同じ
$t->ymd #
2000-02-29
$t->date # $t->ymd と同じ
$t->mdy
# 02-29-2000
$t->dmy # 29-02-2000
$t->datetime # 2000-02-29T12:34:56
$t->cdate
# Tue Feb 29 12:34:56 2000
"$t" # $t->cdate と同じ
$t->epoch # epochからの秒
$t->tzoffset #
timezone offset in a Time::Seconds object
$t->week #
週番号 (ISO 8601)
$t->is_leap_year # 閏年なら真を返す
$t->month_last_day # 28-31
$t->time_separator($s) #
デフォルトのセパレータをセットします (default ":")
$t->date_separator($s) #
デフォルトのセパレータをセットします (default "-")
$t->day_list(@days) #
デフォルトの曜日をセットします
$t->mon_list(@days) # デフォルトの月名をセットします
$t->strftime() # "Tue, 29 Feb 2000 12:34:56 GMT"
$t->strftime(FORMAT)
日時を任意フォーマットの文字列に変換する。FORMATはPOSIX::strftime と同じ。
Time::Piece->strptime(STRING, FORMAT)
任意フォーマットの文字列を解析して
Time::Pieceオブジェクトに格納する。解析に失敗した時は dieするのでエラートラップ要。
**** FORMAT(抜粋) ****
%%
文字としての %
%a または %A
現在のロケールでの曜日名 (省略名または完全な名前)
%b または %B または %h
現在のロケールでの月名 (省略名または完全な名前)
%d または %e
月内の日付 (1-31)
%D
日付、%m/%d/%y と同じ
%H
時間 (0-23)
%I
12 時間制での時間 (1-12)
%j
年の初めからの通算の日付 (1-366)
%m
数字表現の月 (1-12)
%M
分(0-59)
%n
任意の空白
%p
ロケールの AM (午前) と PM (午後) に対応するもの
%S
秒 (0-60; 60 は閏秒を示す
%t
任意の空白
%w
曜日を表す数字 (0-6)、日曜日 が 0
%y
1 世紀中の年 (0-99)。 世紀が指定されない場合、 値が 69-99 の範囲のときは 20 世紀の年
(1969-1999)、値が 00-68 の範囲のときは 21 世紀の年 (2000-2068)
%Y
年。世紀の部分を含む (例: 1991)