2001/07/16 [月]
C99 では、strftime に指定できる書式指定子が増えています。追加されたものも含め、それらを以下に示します。
指定子 | 説明 | 参照メンバ (struct tm *) | 範囲 | 注 | |
年月日・曜日 | |||||
年 | %Y, %EY | 年 | tm_year | 例:1997 | |
%C, %EC | 年の上二桁 | 00-99 | |||
%y, %Ey, %Oy | 年の下二桁 | 00-99 | |||
月 | %m, %Om | 月 | tm_mon | 01-12 | |
%B | ロケール依存の月の名前 | ["C" locale: "January", ..., "December"] | |||
%b, %h(別名) | ロケール依存の省略された月の名前 | ["C" locale: %B の先頭 3 文字] | |||
日 | %d, %Od | 日 | tm_mday | 01-31 | %Od:必要に応じて先頭に0を追加。または0に対応する代替記号がなければ空白を付加 |
%e, %Oe | その月の日付。一桁の場合は空白が置かれる | 1-31 | %Oe:必要に応じて空白を先頭に追加 | ||
曜 日 |
%A | ロケール依存の曜日名 | tm_wday | ["C" locale: "Sunday", ..., "Saturday"] | |
%a | ロケール依存の省略された曜日名 | ["C" locale: %A の先頭 3 文字] | |||
%w, %Ow | 曜日 | 0-6 | 日曜=0 | ||
%u, %Ou | 曜日 (ISO8601形式) | 1-7 | 月曜=1 | ||
日 付 |
%x, %Ex | ロケール依存の日付表現 | all | ["C" locale: %A %B %d %Y] | |
通し番号 | |||||
通 し 番 号 |
%j | 年内の通し番号 | tm_yday | 001-366 | |
%W, %OW | その年の週の通し番号 | tm_year,tm_wday,tm_yday | 00-53 | 月曜が週の始まり | |
%U, %OU | その年の週の通し番号 | 00-53 | 日曜が週の始まり | ||
週ベース年 | |||||
週 ベ ー ス 年 |
%G | 週ベース年 | tm_year, tm_wday, tm_yday | 例:1997 | 下部注参照 |
%g | 週ベース年の下二桁 | 00-99 | |||
%V, %OV | 週ベース年の通し番号 | 01-53 | |||
時分秒 | |||||
時 | %H, %OH | 24時間単位の時 | tm_hour | 00-23 | |
%p | 12時間単位の午前午後を表す文字列 | ["C" locale: am, pm] | |||
%I, %OI | 12時間単位の時 | 01-12 | |||
分 | %M, %OM | 分 | tm_min | 00-59 | |
秒 | %S, %OS | 秒 | tm_sec | 00-60 | |
時 刻 |
%X, %EX | ロケール依存の時刻表現 | all | ["C" locale: %T] | |
%r | ロケール依存の12時間単位の時刻 | tm_hour, tm_min, tm_sec | ["C" locale: %I:%M:%S %p] | ||
%R | %H:%M | tm_hour, tm_min | |||
%T | %H:%M:%S (ISO8601時刻形式) | tm_hour, tm_min, tm_sec | |||
日時 | |||||
日 時 |
%c, %Ec | ロケール依存の適切な日時表現 | all | ["C" locale: %A %B %d %T %Y] | |
%D | %m/%d/%y | tm_mon, tm_mday, tm_year | |||
%F | %y-%m-%d (ISO8601日付形式) | tm_year, tm_mon, tm_mday, | |||
Time Zone | |||||
T i m e Z o n e |
%z | ISO8601形式での UTC からのオフセット | tm_isdst | 例:"+0900" | タイムゾーンが不明ならば文字無し | %Z | ロケールのタイムゾーンの名前または省略名 | 例:JST | タイムゾーンが不明ならば文字無し ["C" locale: 実装定義] |
その他 | |||||
そ の 他 |
%n | 改行 | |||
%t | 水平タブ | ||||
%% | % | ||||
注 | |||||
・%E? は、「ロケールでの別の代替表現による...」をあらわす ・%O? は、「ロケールの代替数値記号を使った...」をあらわす ・%E?,%O?: 現在のロケールで修飾子がなければそれは無視 ・赤字以外は C99 で追加されたもの。ただし POSIX ですでに追加されていたものもある。 ・%g, %G, %V で使用されている ISO8601 の週ベース年とは、その年の第一週に 1 月 4 日を含んでおり、かつ少なくともその年を 4 日分含んでいる、月曜日から始まる週を、その年の始めの週として勘定する方式の年である。 |
by seclan