次の方法で共有


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」の例を参照してください。

同等の .NET Framework 関数

参照

関連項目

ロケール

時間管理

文字列操作 (CRT)

localeconv

setlocale、_wsetlocale

strcoll 系関数

strxfrm、wcsxfrm、_strxfrm_l、_wcsxfrm_l