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)