2010年6月25日金曜日

strftimeの書式一覧。 mawk MBCS (32bit版)編 - AWK

AWKのstrftime関数
互換性の欄は、他のWindows用AWK処理系(Gawk on Windows 3.1.7 / Gawk for Windows 3.1.6)で確認しました。「△ = 表現が異なる処理系がある」「× = サポートしていない処理系がある」です。

サポートしている strftime 書式(機能別)
サポートしている strftime 書式(ABC順)
書式調査資料

mawk MBCS (32bit版) 1.3.3がサポートしている strftime 書式(機能別)
書式(機能別)実行結果の例互換性説明
-- %文字、特殊文字 --
%%[%]パーセント記号
%t[    ]×タブ文字
%n[
]
×改行
-- 年、月、日、世紀 --
%Y[2001]西暦年
%m[02]月(01-12)
%d[03]日(01-31)
%C[20]×世紀。西暦年から下位2桁を除去
%y[01]西暦年の下2桁(00-99)
%B[February]月名
%b[Feb]月名の省略形
%j[034]年の初めから数えた日数(001-366)
%Oy[01]×拡張表現。地域固有の西暦年下2桁表現(無い時は%yと同じです)
%EC[20]×拡張表現。元号(無い時は%Cと同じです)
%EY[2001]×拡張表現。元号付きの年、完全表記。平成元年のような、こだわり表記が出来ます。(無い時は%Yと同じです)
%Ey[01]×拡張表現。元号で数えた時の、年の数字(無い時は%yと同じです)
%Om[02]×拡張表現。地域固有の月表現(無い時は%mと同じです)
%h[Feb]×%bと同じです。月名の省略形(例。Aug)
%e[ 3]×日。1桁の時は左に半角空白( 1-31)
%Oe[ 3]×拡張表現。地域固有の日表現。最大桁数になるまで、左を半角空白で埋めます。(無い時は%eと同じです)
%Od[03]×拡張表現。地域固有の日表現。最大桁数になるまで、左を0で埋めます。(無い時は%dと同じです)
-- 時、分、秒 --
%H[04]時。24時間表記(00-23)
%M[05]分(00-59)
%S[06]秒(00-59)。閏秒を表示するシステムの場合は61秒までの可能性
%I[04]時。12時間表記(01-12)
%p[AM]午前/午後の大文字
%k[ 4]×時。24時間表記で、1桁の時は左に半角空白( 0-23)
%l[ 4]×時。12時間表記で、1桁の時は左に半角空白( 0-12)
%OH[04]×拡張表現。地域固有の時表現(24時間)(無い時は%Hと同じです)
%OI[04]×拡張表現。地域固有の時表現(12時間)(無い時は%Iと同じです)
%OM[05]×拡張表現。地域固有の分表現(無い時は%Mと同じです)
%OS[06]×拡張表現。地域固有の秒表現(無い時は%Sと同じです)
-- 曜日、週番号 --
%A[Saturday]曜日
%a[Sat]曜日の省略形
%w[6]曜日番号。日曜日が0(0-6)
%u[6]×曜日番号。月曜日が1(1-7)
%U[04]週番号。その年の最初の日曜日から1週目。最初の日曜日の前日までは00。(00-53)
%W[05]週番号。その年の最初の月曜日から1週目。最初の月曜日の前日までは00。(00-53)
%V[05]×週番号。ISO 8601週単位表記。週の最初は月曜日。1月1日を含む週は、所属日の多い年に含めます。
%Ow[6]×拡張表現。地域固有の曜日番号表現。日曜日が0で、6まで(無い時は%wと同じです)
%Ou[6]×拡張表現。地域固有の曜日番号表現。月曜日が1で、7まで(無い時は%uと同じです)
%OU[04]×拡張表現。地域固有の週番号表現。その年の最初の日曜日から1週目。その前日までは00相当(無い時は%Uと同じです)
%OW[05]×拡張表現。地域固有の週番号表現。その年の最初の月曜日から1週目。その前日までは00相当(無い時は%Wと同じです)
%OV[05]×拡張表現。地域固有の週番号表現。ISO 8601の規定通り。週の最初は月曜日。1月1日を含む週は、所属日の多い年に含めます。(無い時は%Vと同じです)
-- タイムゾーンは、非サポートです --
-- 組み合わせ(米国仕様) --
%x[Sat Feb 3 2001]一般的な年月日表記
%Ex[Sat Feb 3 2001]×拡張表現。地域固有の日付表現(無い時は%xと同じです)
%D[02/03/01]×米国で一般的な年月日(%m/%d/%y)
%v[03-FEB-2001]×VMSフォーマットの日付(例 09-MAR-2039)
%X[04:05:06]一般的な時刻表記。年月日は含みません。
%EX[04:05:06]×拡張表現。地域固有の時刻表現(無い時は%Xと同じです)
%T[04:05:06]×24 時間表記の時分秒 (%H:%M:%S)
%r[04:05:06 AM]×12時間表記の時分秒+午前午後(%I:%M:%S %p)
%R[04:05]×24時間表記の時分(%H:%M)
%c[Sat Feb 3 04:05:06 2001]一般的な年月日と時刻
%Ec[Sat Feb 3 04:05:06 2001]×拡張表現。地域固有の日付時刻表現(無い時は%cと同じです)


mawk MBCS (32bit版) 1.3.3がサポートしている strftime 書式(ABC順)
書式(ABC順)実行結果の例互換性説明
%A[Saturday]曜日
%a[Sat]曜日の省略形
%B[February]月名
%b[Feb]月名の省略形
%C[20]×世紀。西暦年から下位2桁を除去
%c[Sat Feb 3 04:05:06 2001]一般的な年月日と時刻
%D[02/03/01]×米国で一般的な年月日(%m/%d/%y)
%d[03]日(01-31)
%e[ 3]×日。1桁の時は左に半角空白( 1-31)
%EC[20]×拡張表現。元号(無い時は%Cと同じです)
%Ec[Sat Feb 3 04:05:06 2001]×拡張表現。地域固有の日付時刻表現(無い時は%cと同じです)
%EX[04:05:06]×拡張表現。地域固有の時刻表現(無い時は%Xと同じです)
%Ex[Sat Feb 3 2001]×拡張表現。地域固有の日付表現(無い時は%xと同じです)
%EY[2001]×拡張表現。元号付きの年、完全表記。平成元年のような、こだわり表記が出来ます。(無い時は%Yと同じです)
%Ey[01]×拡張表現。元号で数えた時の、年の数字(無い時は%yと同じです)
%H[04]時。24時間表記(00-23)
%h[Feb]×%bと同じです。月名の省略形(例。Aug)
%I[04]時。12時間表記(01-12)
%j[034]年の初めから数えた日数(001-366)
%k[ 4]×時。24時間表記で、1桁の時は左に半角空白( 0-23)
%l[ 4]×時。12時間表記で、1桁の時は左に半角空白( 0-12)
%M[05]分(00-59)
%m[02]月(01-12)
%n[
]
×改行
%Od[03]×拡張表現。地域固有の日表現。最大桁数になるまで、左を0で埋めます。(無い時は%dと同じです)
%Oe[ 3]×拡張表現。地域固有の日表現。最大桁数になるまで、左を半角空白で埋めます。(無い時は%eと同じです)
%OH[04]×拡張表現。地域固有の時表現(24時間)(無い時は%Hと同じです)
%OI[04]×拡張表現。地域固有の時表現(12時間)(無い時は%Iと同じです)
%OM[05]×拡張表現。地域固有の分表現(無い時は%Mと同じです)
%Om[02]×拡張表現。地域固有の月表現(無い時は%mと同じです)
%OS[06]×拡張表現。地域固有の秒表現(無い時は%Sと同じです)
%OU[04]×拡張表現。地域固有の週番号表現。その年の最初の日曜日から1週目。その前日までは00相当(無い時は%Uと同じです)
%Ou[6]×拡張表現。地域固有の曜日番号表現。月曜日が1で、7まで(無い時は%uと同じです)
%OV[05]×拡張表現。地域固有の週番号表現。ISO 8601の規定通り。週の最初は月曜日。1月1日を含む週は、所属日の多い年に含めます。(無い時は%Vと同じです)
%OW[05]×拡張表現。地域固有の週番号表現。その年の最初の月曜日から1週目。その前日までは00相当(無い時は%Wと同じです)
%Ow[6]×拡張表現。地域固有の曜日番号表現。日曜日が0で、6まで(無い時は%wと同じです)
%Oy[01]×拡張表現。地域固有の西暦年下2桁表現(無い時は%yと同じです)
%p[AM]午前/午後の大文字
%R[04:05]×24時間表記の時分(%H:%M)
%r[04:05:06 AM]×12時間表記の時分秒+午前午後(%I:%M:%S %p)
%S[06]秒(00-59)。閏秒を表示するシステムの場合は61秒までの可能性
%T[04:05:06]×24 時間表記の時分秒 (%H:%M:%S)
%t[    ]×タブ文字
%U[04]週番号。その年の最初の日曜日から1週目。最初の日曜日の前日までは00。(00-53)
%u[6]×曜日番号。月曜日が1(1-7)
%W[05]週番号。その年の最初の月曜日から1週目。最初の月曜日の前日までは00。(00-53)
%w[6]曜日番号。日曜日が0(0-6)
%X[04:05:06]一般的な時刻表記。年月日は含みません。
%x[Sat Feb 3 2001]一般的な年月日表記
%V[05]×週番号。ISO 8601週単位表記。週の最初は月曜日。1月1日を含む週は、所属日の多い年に含めます。
%v[03-FEB-2001]×VMSフォーマットの日付(例 09-MAR-2039)
%Y[2001]西暦年
%y[01]西暦年の下2桁(00-99)
%%[%]パーセント記号


# --------------------------------------------------------------
# 基礎資料。strftime書式調査テスト結果
#
テストに使った書式は、各awk処理系の説明書の他、C言語の同名関数で見かけた書式も混ぜました。
◎の意味は、「日本語対応として望ましい」です。
色が付いている所は、未サポート、もしくは正しいとされる表記が複数あって、互換性に乏しい所です。

調査したAWK処理系 = mawk MBCS (32bit版) 1.3.3 (1998年8月22日版)
OS = Windows XP SP3 日本語版
調査に使った関数 = strftime
環境変数の追加設定無し = TZやLC_系環境変数の指定無し

# -------------------------------
# テスト1。2001年2月3日4時5分6秒 UTC+9 = 981140706
# -------------------------------
書式(ABC順)実行結果判定説明
%A[Saturday]
米国
曜日
%a[Sat]
米国
曜日の省略形
%B[February]
米国
月名
%b[Feb]
米国
月名の省略形
%C[20]世紀。西暦年から下位2桁を除去
%c[Sat Feb 3 04:05:06 2001]
米国
一般的な年月日と時刻
%D[02/03/01]米国で一般的な年月日(%m/%d/%y)
%d[03]日(01-31)
%e[ 3]日。1桁の時は左に半角空白( 1-31)
%F[%F]×年月日。ISO 8601形式。%Y-%m-%d
%G[%G]×年。ISO 8601週単位表記。年末年始で、%Yと異なります。
%g[%g]×年。ISO 8601週単位表記の下2桁(00-99)
%H[04]時。24時間表記(00-23)
%h[Feb]%bと同じです。月名の省略形(例。Aug)
%I[04]時。12時間表記(01-12)
%j[034]年の初めから数えた日数(001-366)
%k[ 4]時。24時間表記で、1桁の時は左に半角空白( 0-23)
%l[ 4]時。12時間表記で、1桁の時は左に半角空白( 0-12)
%M[05]分(00-59)
%m[02]月(01-12)
%n[
]
改行
%P[%P]×午前/午後の小文字
%p[AM]午前/午後の大文字
%R[04:05]24時間表記の時分(%H:%M)
%r[04:05:06 AM]12時間表記の時分秒+午前午後(%I:%M:%S %p)
%S[06]秒(00-59)。閏秒を表示するシステムの場合は61秒までの可能性
%s[%s]×基準時刻からの秒数。1970年1月1日0時(UTC)から
%T[04:05:06]24 時間表記の時分秒 (%H:%M:%S)
%t[    ]タブ文字
%U[04]週番号。その年の最初の日曜日から1週目。最初の日曜日の前日までは00。(00-53)
%u[6]曜日番号。月曜日が1(1-7)
%W[05]週番号。その年の最初の月曜日から1週目。最初の月曜日の前日までは00。(00-53)
%w[6]曜日番号。日曜日が0(0-6)
%X[04:05:06]一般的な時刻表記。年月日は含みません。
%x[Sat Feb 3 2001]
米国
一般的な年月日表記
%V[05]週番号。ISO 8601週単位表記。週の最初は月曜日。1月1日を含む週は、所属日の多い年に含めます。
%v[03-FEB-2001]VMSフォーマットの日付(例 09-MAR-2039)
%Y[2001]西暦年
%y[01]西暦年の下2桁(00-99)
%Z[PST]×タイムゾーン。名前または省略形。不明な場合は空です。
%z[%z]×タイムゾーン。数値形式(例 +0900)。不明な場合は空です。
%%[%]パーセント記号
%EC[20]
米国
拡張表現。元号(無い時は%Cと同じです)
%Ec[Sat Feb 3 04:05:06 2001]
米国
拡張表現。地域固有の日付時刻表現(無い時は%cと同じです)
%EX[04:05:06]拡張表現。地域固有の時刻表現(無い時は%Xと同じです)
%Ex[Sat Feb 3 2001]
米国
拡張表現。地域固有の日付表現(無い時は%xと同じです)
%EY[2001]
米国
拡張表現。元号付きの年、完全表記。平成元年のような、こだわり表記が出来ます。(無い時は%Yと同じです)
%Ey[01]
米国
拡張表現。元号で数えた時の、年の数字(無い時は%yと同じです)
%Od[03]拡張表現。地域固有の日表現。最大桁数になるまで、左を0で埋めます。(無い時は%dと同じです)
%Oe[ 3]拡張表現。地域固有の日表現。最大桁数になるまで、左を半角空白で埋めます。(無い時は%eと同じです)
%OH[04]拡張表現。地域固有の時表現(24時間)(無い時は%Hと同じです)
%OI[04]拡張表現。地域固有の時表現(12時間)(無い時は%Iと同じです)
%OM[05]拡張表現。地域固有の分表現(無い時は%Mと同じです)
%Om[02]拡張表現。地域固有の月表現(無い時は%mと同じです)
%OS[06]拡張表現。地域固有の秒表現(無い時は%Sと同じです)
%OU[04]拡張表現。地域固有の週番号表現。その年の最初の日曜日から1週目。その前日までは00相当(無い時は%Uと同じです)
%Ou[6]拡張表現。地域固有の曜日番号表現。月曜日が1で、7まで(無い時は%uと同じです)
%OV[05]拡張表現。地域固有の週番号表現。ISO 8601の規定通り。週の最初は月曜日。1月1日を含む週は、所属日の多い年に含めます。(無い時は%Vと同じです)
%OW[05]拡張表現。地域固有の週番号表現。その年の最初の月曜日から1週目。その前日までは00相当(無い時は%Wと同じです)
%Ow[6]拡張表現。地域固有の曜日番号表現。日曜日が0で、6まで(無い時は%wと同じです)
%Oy[01]拡張表現。地域固有の西暦年下2桁表現(無い時は%yと同じです)

# -------------------------------
# テスト2。2010年1月1日23時59分59秒 UTC+9 = 1262357999
# -------------------------------
書式(ABC順)実行結果判定説明
%A[Friday]
米国
曜日
%a[Fri]
米国
曜日の省略形
%B[January]
米国
月名
%b[Jan]
米国
月名の省略形
%C[20]世紀。西暦年から下位2桁を除去
%c[Fri Jan 1 23:59:59 2010]
米国
一般的な年月日と時刻
%D[01/01/10]米国で一般的な年月日(%m/%d/%y)
%d[01]日(01-31)
%e[ 1]日。1桁の時は左に半角空白( 1-31)
%F[%F]×年月日。ISO 8601形式。%Y-%m-%d
%G[%G]×年。ISO 8601週単位表記。年末年始で、%Yと異なります。
%g[%g]×年。ISO 8601週単位表記の下2桁(00-99)
%H[23]時。24時間表記(00-23)
%h[Jan]%bと同じです。月名の省略形(例。Aug)
%I[11]時。12時間表記(01-12)
%j[001]年の初めから数えた日数(001-366)
%k[23]時。24時間表記で、1桁の時は左に半角空白( 0-23)
%l[11]時。12時間表記で、1桁の時は左に半角空白( 0-12)
%M[59]分(00-59)
%m[01]月(01-12)
%n[
]
改行
%P[%P]×午前/午後の小文字
%p[PM]午前/午後の大文字
%R[23:59]24時間表記の時分(%H:%M)
%r[11:59:59 PM]12時間表記の時分秒+午前午後(%I:%M:%S %p)
%S[59]秒(00-59)。閏秒を表示するシステムの場合は61秒までの可能性
%s[%s]×基準時刻からの秒数。1970年1月1日0時(UTC)から
%T[23:59:59]24 時間表記の時分秒 (%H:%M:%S)
%t[    ]タブ文字
%U[00]週番号。その年の最初の日曜日から1週目。最初の日曜日の前日までは00。(00-53)
%u[5]曜日番号。月曜日が1(1-7)
%W[00]週番号。その年の最初の月曜日から1週目。最初の月曜日の前日までは00。(00-53)
%w[5]曜日番号。日曜日が0(0-6)
%X[23:59:59]一般的な時刻表記。年月日は含みません。
%x[Fri Jan 1 2010]
米国
一般的な年月日表記
%V[53]週番号。ISO 8601週単位表記。週の最初は月曜日。1月1日を含む週は、所属日の多い年に含めます。
%v[01-JAN-2010]VMSフォーマットの日付(例 09-MAR-2039)
%Y[2010]西暦年
%y[10]西暦年の下2桁(00-99)
%Z[PST]×タイムゾーン。名前または省略形。不明な場合は空です。
%z[%z]×タイムゾーン。数値形式(例 +0900)。不明な場合は空です。
%%[%]パーセント記号
%EC[20]
米国
拡張表現。元号(無い時は%Cと同じです)
%EX[23:59:59]拡張表現。地域固有の時刻表現(無い時は%Xと同じです)
%Ec[Fri Jan 1 23:59:59 2010]
米国
拡張表現。地域固有の日付時刻表現(無い時は%cと同じです)
%Ex[Fri Jan 1 2010]
米国
拡張表現。地域固有の日付表現(無い時は%xと同じです)
%EY[2010]
米国
拡張表現。元号付きの年、完全表記。平成元年のような、こだわり表記が出来ます。(無い時は%Yと同じです)
%Ey[10]
米国
拡張表現。元号で数えた時の、年の数字(無い時は%yと同じです)
%Od[01]拡張表現。地域固有の日表現。最大桁数になるまで、左を0で埋めます。(無い時は%dと同じです)
%Oe[ 1]拡張表現。地域固有の日表現。最大桁数になるまで、左を半角空白で埋めます。(無い時は%eと同じです)
%OH[23]拡張表現。地域固有の時表現(24時間)(無い時は%Hと同じです)
%OI[11]拡張表現。地域固有の時表現(12時間)(無い時は%Iと同じです)
%OM[59]拡張表現。地域固有の分表現(無い時は%Mと同じです)
%Om[01]拡張表現。地域固有の月表現(無い時は%mと同じです)
%OS[59]拡張表現。地域固有の秒表現(無い時は%Sと同じです)
%OU[00]拡張表現。地域固有の週番号表現。その年の最初の日曜日から1週目。その前日までは00相当(無い時は%Uと同じです)
%Ou[5]拡張表現。地域固有の曜日番号表現。月曜日が1で、7まで(無い時は%uと同じです)
%OV[53]拡張表現。地域固有の週番号表現。ISO 8601の規定通り。週の最初は月曜日。1月1日を含む週は、所属日の多い年に含めます。(無い時は%Vと同じです)
%OW[00]拡張表現。地域固有の週番号表現。その年の最初の月曜日から1週目。その前日までは00相当(無い時は%Wと同じです)
%Ow[5]拡張表現。地域固有の曜日番号表現。日曜日が0で、6まで(無い時は%wと同じです)
%Oy[10]拡張表現。地域固有の西暦年下2桁表現(無い時は%yと同じです)

==
関連ページ:
    ▼strftime - 時刻を文字列に変換する
    ▼AWKの時刻取得機能▼ABC順
    ▼AWKプログラムを書く▼ABC順
    ▼AWK
    ▼制作メモ
    > ▼AWKの入出力とコマンド実行機能
    +
    strftimeの書式一覧。 Gawk on Windows編
    strftimeの書式一覧。 Gawk for Windows編
(2010年6月26日追加。書式の説明文と誤記訂正)