2010年6月25日金曜日

strftimeの書式一覧。 Gawk on Windows編 - AWK

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

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

Gawk on Windows 3.1.7がサポートしている strftime 書式(機能別)
書式(機能別)実行結果の例互換性説明
-- %文字 --
%%[%]パーセント記号
-- 年、月、日 --
%Y[2001]西暦年
%m[02]月(01-12)
%d[03]日(01-31)
%y[01]西暦年の下2桁(00-99)
%B[2月]月名
%b[2]月名の省略形
%j[034]年の初めから数えた日数(001-366)
-- 時、分、秒 --
%H[04]時。24時間表記(00-23)
%M[05]分(00-59)
%S[06]秒(00-59)。閏秒を表示するシステムの場合は61秒までの可能性
%I[04]時。12時間表記(01-12)
%p[午前]午前/午後の大文字
-- 曜日、週番号 --
%w[6]曜日番号。日曜日が0(0-6)
%A[土曜日]曜日
%a[土]曜日の省略形
%U[04]週番号。その年の最初の日曜日から1週目。最初の日曜日の前日までは00。(00-53)
%W[05]週番号。その年の最初の月曜日から1週目。最初の月曜日の前日までは00。(00-53)
-- タイムゾーン --
%Z[東京 (標準時)]×タイムゾーン。名前または省略形。不明な場合は空です。
-- 組み合わせ --
%x[2001/02/03]一般的な年月日表記
%X[4:05:06]一般的な時刻表記。年月日は含みません。デジタル時計では、この表記(分秒だけ前ゼロ)を良く見かけます。
%c[2001/02/03 4:05:06]一般的な年月日と時刻

Gawk on Windows 3.1.7がサポートしている strftime 書式(ABC順)
書式(ABC順)実行結果の例互換性説明
%A[土曜日]曜日
%a[土]曜日の省略形
%B[2月]月名
%b[2]月名の省略形
%c[2001/02/03 4:05:06]一般的な年月日と時刻
%d[03]日(01-31)
%H[04]時。24時間表記(00-23)
%I[04]時。12時間表記(01-12)
%j[034]年の初めから数えた日数(001-366)
%M[05]分(00-59)
%m[02]月(01-12)
%p[午前]午前/午後の大文字
%S[06]秒(00-59)。閏秒を表示するシステムの場合は61秒までの可能性
%U[04]週番号。その年の最初の日曜日から1週目。最初の日曜日の前日までは00。(00-53)
%W[05]週番号。その年の最初の月曜日から1週目。最初の月曜日の前日までは00。(00-53)
%w[6]曜日番号。日曜日が0(0-6)
%X[4:05:06]一般的な時刻表記。年月日は含みません。デジタル時計では、この表記(分秒だけ前ゼロ)を良く見かけます。
%x[2001/02/03]一般的な年月日表記
%Y[2001]西暦年
%y[01]西暦年の下2桁(00-99)
%Z[東京 (標準時)]×タイムゾーン。名前または省略形。不明な場合は空です。
%%[%]パーセント記号

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


調査したAWK処理系 = Gawk on Windows 3.1.7 (2009年11月24日版)
OS = Windows XP SP3 日本語版
調査に使った関数 = strftime
環境変数の追加設定無し = TZやLC_系環境変数の指定無し

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

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


==
関連ページ:
    ▼strftime - 時刻を文字列に変換する
    ▼AWKの時刻取得機能▼ABC順
    ▼AWKプログラムを書く▼ABC順
    ▼AWK
    ▼制作メモ
    ▼目次
    > strftimeの書式一覧。 Gawk for Windows編
    strftimeの書式一覧。 mawk MBCS (32bit版)編
(2010年6月26日追加。書式の説明文と誤記訂正)