|
|
A.1 strftime 書式指定子
time.h に含まれる strftime 関数の書式指定子も 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 日分含んでいる、月曜日から始まる週を、その年の始めの週として勘定する方式の年である。
|
|
|
|