GetDateFormatW 関数 (datetimeapi.h)

ロケール識別子で指定されたロケールの日付文字列として日付を書式設定します。 関数は、指定された日付またはローカル システムの日付を書式設定します。

メモ相互運用性の理由から、Microsoft は新しいロケールのロケール識別子ではなくロケール名の使用に移行するため、アプリケーションは GetDateFormatEx 関数を GetDateFormat に優先する必要があります。 Windows Vista 以降でのみ実行されるアプリケーションでは、 GetDateFormatEx を使用する必要があります。

 

構文

int GetDateFormatW(
  [in]            LCID             Locale,
  [in]            DWORD            dwFlags,
  [in, optional]  const SYSTEMTIME *lpDate,
  [in, optional]  LPCWSTR          lpFormat,
  [out, optional] LPWSTR           lpDateStr,
  [in]            int              cchDate
);

パラメーター

[in] Locale

この関数が日付文字列の書式を設定するロケールを指定するロケール識別子MAKELCID マクロを使用してロケール識別子を作成するか、次のいずれかの定義済み値を使用できます。

[in] dwFlags

日付形式オプションを指定するフラグ。 詳細な定義については、GetDateFormatExdwFlags パラメーターを参照してください。

[in, optional] lpDate

書式設定する日付情報を含む SYSTEMTIME 構造体へのポインター。 関数が現在のローカル システム日付を使用する場合、アプリケーションはこのパラメーターを NULL に設定します。

[in, optional] lpFormat

日付の形成に使用される書式指定図文字列へのポインター。 書式指定図の文字列に使用できる値は 、Day、Month、Year、および Era Format Pictures で定義されます。

関数は、書式指定図文字列で指定されていない情報 (ロケールの日名や月名など) に対してのみ、指定されたロケールを使用します。 アプリケーションでは、このパラメーターを NULL に設定して、指定したロケールの日付形式に従って文字列を書式設定できます。

[out, optional] lpDateStr

この関数が書式設定された日付文字列を取得するバッファーへのポインター。

[in] cchDate

lpDateStr バッファーのサイズ (文字単位)。 アプリケーションでは、このパラメーターを 0 に設定して、書式設定された日付文字列を保持するために必要なバッファー サイズを返すことができます。 この場合、 lpDateStr で示されるバッファーは使用されません。

戻り値

成功した場合に lpDateStr バッファーに書き込まれた文字数を返します。 cchDate パラメーターが 0 に設定されている場合、関数は、書式設定された日付文字列を保持するために必要な文字数 (終端の null 文字を含む) を返します。

成功しなかった場合、関数は 0 を返します。 拡張エラー情報を取得するために、アプリケーションは GetLastError を呼び出すことができます。これにより、次のいずれかのエラー コードが返されます。

  • ERROR_INSUFFICIENT_BUFFER。 指定されたバッファー サイズが十分に大きくなかったか、 正しく NULL に設定されていませんでした。
  • ERROR_INVALID_FLAGS。 フラグに指定された値が無効でした。
  • ERROR_INVALID_PARAMETER。 パラメーター値のいずれかが無効です。

解説

メモ この API は、2019 年 5 月の日本の時代変更をサポートするように更新されています。 アプリケーションで日本語カレンダーがサポートされている場合は、新しい時代 (年号) が適切に処理されていることを検証する必要があります。 詳細については、「 日本の時代 (年号) の変更に合わせてアプリケーションを準備 する」を参照してください。
 
「GetDateFormatEx の備考」を参照してください。

この関数の ANSI バージョンを Unicode のみのロケール識別子と共に使用すると、オペレーティング システムでシステム コード ページが使用されるため、関数は成功する可能性があります。 ただし、システム コード ページで未定義の文字は、文字列に疑問符 ("?") として表示されます。

Windows 8 以降: GetDateFormat は Datetimeapi.h で宣言されています。 Windows 8 より前では、Winnls.h で宣言されていました。

注意

datetimeapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして GetDateFormat を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー datetimeapi.h
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

日、月、年、および時代 (年) 形式の画像

EnumCalendarInfo

EnumDateFormatsEx

GetCalendarInfo

GetDateFormatEx

GetLocaleInfo

GetTimeFormat

各国語サポート

各国語サポート関数