HOME備忘帳

POSIXモジュールのstrftime

UNIX系標準仕様の関数を、Perlでも使えるようにするPOSIXモジュール。その中でもstrftime関数は、日付や時刻を特定のフォーマットで出力したい時の選択肢のひとつです。

が、Windows人としては、POSIXと言われてもリファレンスが無いと分からないです。ということで、strftimeのフォーマットの指定方法のメモです。

モジュールの使い方

useするときは関数名を指定して読み込む

use POSIX qw(strftime);

# 現在の日付・時刻を、取得
my $datetime = strftime("%a, %d %b %Y %H:%M:%S %z", localtime());

[ ページ先頭へ ]

フォーマットの指定方法

日付関係
%Y 西暦4桁
%C 西暦の上2桁(世紀)
%y 西暦の下2桁
%m 月(1~9月は1桁目に0)
%b 月名の省略形
%h %bと同じ
%B 月名
%d 日(1~9日は1桁目に0)
%e 日(1~9日は1桁目にスペース)
%a 曜日の省略名
%A 曜日
%u 週の何番目の日か(1~7、1=月曜)
%w 週の何番目の日か(0~6、0=日曜)
時刻関係
%H 時(24時間表記、0~9時は1桁目に0)
%k 時(24時間表記、0~9時は1桁目にスペース)
%I 時(12時間表記、0~9時は1桁目に0)
%l 時(12時間表記、0~9時は1桁目にスペース)
%p その地域でのAM/PMに相当する文字列(正午はPM、真夜中はAM)
%P %pと同じ内容を小文字で(am/pmなど)
%M 分(0~9分は1桁目に0)
%S 秒(0~9秒は1桁目に0、閏秒時は60)
%z GMTへのオフセット時間(RFC 822形式のとき使う)
%Z タイムゾーン
省略形(環境による)
%c その地域で一般的な日付・時刻
%x その地域で一般的な日付(時刻含まず)
%X その地域で一般的な時刻(日付含まず)
%D %m/%d/%yと同じ
%F ISO 8601形式の日付 %Y-%m-%dと同じ
%r 12時間表記の時間 %I:%M:%S %pと同じ
%T 24時間表記の時間 %H:%M:%Sと同じ
%R 24時間表記の時間、秒除く %H:%Mと同じ
その他
%s エポック秒
%j 年日(001~366)
%U 年週(00~53、その年の最初の日曜から01週)
%W 年週(00~53、その年の最初の月曜から01週)
%V 年週(00~53、その年の4日以上含まれる最初の週の月曜から01週、ISO 8601:1988 形式)
%G 西暦4桁(ISO 8608形式の年週が前年・翌年になる場合はその年)
%g 西暦の下2桁(ISO 8608形式の年週が前年・翌年になる場合はその年)
%n 改行
%t タブ

置き換え文字以外は、そのまま文字として返される。

最終更新日:2010/05/30

[ ページ先頭へ ]