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