strftime、wcsftime、_strftime_l、_wcsftime_l
時刻文字列を書式化します。
size_t strftime(
char *strDest,
size_t maxsize,
const char *format,
const struct tm *timeptr
);
size_t _strftime_l(
char *strDest,
size_t maxsize,
const char *format,
const struct tm *timeptr,
_locale_t locale
);
size_t wcsftime(
wchar_t *strDest,
size_t maxsize,
const wchar_t *format,
const struct tm *timeptr
);
size_t _wcsftime_l(
wchar_t *strDest,
size_t maxsize,
const wchar_t *format,
const struct tm *timeptr,
_locale_t locale
);
パラメーター
strDest
出力する文字列。maxsize
文字が使用されます strDest バッファーのサイズ (char または wchart_t)。format
書式指定文字列。timeptr
tm の データ構造。locale
使用するロケール。
戻り値
strftime は strDest に配置された文字数を返します wcsftime はワイド文字の対応する番号を返します。
文字数が、終端の null を含む) の数より多い場合は、maxsizestrftime と wcsftime 0 の両方を返し、strDest の内容は不確定です。
strDest の文字数が書式指定コードによって format に追加できる format リテラル文字、文字の数と同じになります。 文字列の終端の null は戻り値としてカウントされます。
解説
strftime と wcsftime 関数は format の指定された引数に従って timeptr の tm の時刻の値の書式を指定して、buffer strDestに結果を保存します*。*最大でも maxsize の文字が文字列内に挿入されます。 timeptr 構造体のフィールドの詳細については、「asctime」を参照してください。 wcsftime は strftimeのワイド文字単位の等価です; ワイド文字列へのアクセス文字列ポインター引数のポイント。 それ以外では、これらの関数の動作は同じです。
注意
Visual C++ 2005 以前のバージョンでは、ドキュメントが記述されていますが const wchar_t *データ型を持つとして wcsftime の format パラメーターを、format のデータ型の実際の実装は const char *でした。formatのデータ型の実装は前と現在のドキュメント、つまり const wchar_t *を反映するように更新されました。
この関数は、パラメーターを検証します。 strDest、format、またはtimeptr が null ポインターの場合、または timeptr して対処する tm のデータ構造が無効 (たとえば、時間または日付の範囲内の値を含む場合、) である場合は format の文字列に無効な書式指定コードが含まれる場合、無効なパラメーター ハンドラーが パラメーターの検証"に説明されているように、呼び出されます。 実行の継続が許可された場合、この関数は 0 を返し、errno を EINVAL に設定します。
汎用テキスト ルーチンのマップ
TCHAR.H のルーチン |
_UNICODE & _MBCS が未定義の場合 |
_MBCS が定義されている場合 |
_UNICODE が定義されている場合 |
---|---|---|---|
_tcsftime |
strftime |
strftime |
wcsftime |
format の引数は一つ以上のコードで構成されます。; printfと同様に、書式指定コードがパーセント記号 (%) が付きます。 % という文字が strDestにコピーされます*。*現在のロケールの LC_TIME のカテゴリは strftimeの出力書式に影響します。(LC_TIMEの詳細については、「setlocale」を参照してください。_l サフィックスのない関数は、現在設定されているロケールを使用します。 _l のサフィックスが付いているこれらの関数の各バージョンは同じですが、ロケールをパラメーターとして受け取り、現在設定されているロケールの代わりに使用します。 詳細については、「ロケール」を参照してください。
strftime の書式指定コードを次に示します。:
%a
曜日の名前%A
曜日の正式名%b
省略された月名%B
完全な月名%c
ロケールの適切な日付と時刻の表現%d
10 進数 (01 – 31) として月の日%H
24 時間制 (00 – 23 時間)%I
12 時間制 (01 – 12 時間)%j
10 進数 (001) として– 366 年の日%m
10 進数 (01 – 12) として月%M
10 進数 (00) として– 59 分%p
12 時間制の現在のロケールの午前/アフリカーンス語.のインジケーター%S
second として 10 進数 (00 – 59)%U
最初に曜日 (00 – 53) の日付として Sunday の 10 進数として年の週、%w
10 進数 (0 – 6 として Weekday; 日曜日は 0)%W
最初に曜日 (00 – 53) の日付として Monday の 10 進数として年の週、%x
現在のロケールの日付の表現%X
現在のロケールの時刻の表現%y
10 進数 (00 – 99) として世紀のではなく、%Y
10 進数として世紀の年、%z, %Z
レジストリの設定によって、タイム ゾーンの名前またはタイム ゾーンの省略形、; タイム ゾーンが不明な場合は文字なし%%
パーセント記号
printf 関数と同様に、# フラグは書式指定コードを付け加える場合があります。 この場合、書式指定コードの意味は、次のように変更されます。
[書式コード] |
説明 |
---|---|
%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#% |
# フラグは無視されます。 |
%#c |
長い日付と時刻の表現は現在のロケールでは、割り当てます。 例: 「Tuesday November 1995 (3 年 12 月 14 日 12:41: 29 "です。 |
%#x |
長い日付形式は現在のロケールに、割り当てます。 例: 「Tuesday November 1995 (3 年 12 月 14 日」。 |
%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#Y |
先行するゼロを削除します (存在する場合)。 |
必要条件
ルーチン |
必須ヘッダー |
---|---|
strftime |
<time.h> |
wcsftime |
<time.h または> wchar.h <> |
_strftime_l |
<time.h> |
_wcsftime_l |
<time.h または> wchar.h <> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
「time」の例を参照してください。