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 を含む、より多くの場合 maxsizeは、 strftime と wcsftime 0 の両方を返し、 strDest の内容は不確定です。
strDest の文字の数は、書式指定コードによって format に追加できる format のリテラル文字、または文字の数と同じです。文字列の終端の null は戻り値はカウントされません。
解説
strftime と wcsftime の関数は format 、指定された引数に従って timeptr の tm の時刻の値の書式設定、バッファー 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
桁数 (01 ~ 31)として月の日%H
24 時間形式 (00 ~ 23)の時間%I
12 時間形式 (01 ~ 12)の時間%j
桁数 (001 ~ 366)として年の日%m
桁数 (01 ~ 12)として月%M
桁数 (00 ~ 59)として分%p
現在のロケールの午前/P.M。12 時間制のインジケーター。%S
番目にとして桁数 (00 ~ 59)%U
最初に曜日 (00 ~ 53)の日付として太陽の桁数として年の週、%w
桁数 (0 ~ 6 として曜日; 日曜日は 0 です)%W
最初に曜日 (00 ~ 53)の日付として Monday の桁数として年の週、%x
現在のロケールの日付の表現%X
現在のロケールの時刻の表現%y
桁数 (00 ~ 99)として世紀のではなく、%Y
桁数として世紀の年、%z, %Z
レジストリ設定によるタイム ゾーンの名前またはタイム ゾーンの省略形、; タイム ゾーンが不明な場合は文字なし%%
パーセント記号
printf の関数のように、 # のフラグは、書式指定コードの前に付ける場合があります。その場合は、フォーム コードの意味は次のように変更されます。
[書式コード] |
説明 |
---|---|
%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#% |
# の フラグが無視されます。 |
%#c |
長い日付と時刻の表現は現在のロケールでは、割り当てます。例: 「Tuesday November 3、 1995 年 1 月 14 日 12:41: 29"。 |
%#x |
長い形式の日付の表現は現在のロケールに、割り当てます。例: 「sun、 1995 年 1 月 3 日 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」の例を参照してください。