GetDateFormatEx

名前で指定したロケール用に日付を日付文字列として整形する。

GetDateFormatEx lpLocaleName, dwFlags, lpDate, lpFormat, lpDateStr, cchDate, lpCalendar

lpLocaleName : [wstr] ロケール名、または次の定義済み値のいずれかへのポインタ。
dwFlags : [int] 
lpDate : [var] 整形対象の日付情報を含む SYSTEMTIME 構造体へのポインタ。現在のローカルシステム日付を関数に使わせる場合、アプリケーションはこのパラメータを NULL に設定できる。
lpFormat : [wstr] 日付を組み立てるために使われるフォーマットピクチャ文字列へのポインタ。フォーマットピクチャ文字列に指定可能な値は Day, Month, Year, and Era Format Pictures で定義されている。たとえば日付文字列 "Wed, Aug 31 94" を取得するには、アプリケーションはピクチャ文字列 "ddd',' MMM dd yy" を使う。関数はフォーマットピクチャ文字列で指定されていない情報(たとえばロケールの曜日名や月名)にのみ指定したロケールを使う。指定したロケールの日付形式に従って文字列を整形させる場合、アプリケーションはこのパラメータを NULL に設定できる。
lpDateStr : [wstr] 整形済み日付文字列をこの関数が取得するバッファへのポインタ。
cchDate : [int] lpDateStr バッファのサイズ。文字数で指定する。アプリケーションはこのパラメータを 0 に設定することで、整形済み日付文字列を保持するのに必要なバッファサイズを返すことができる。この場合、lpDateStr が示すバッファは使われない。
lpCalendar : [wstr] 予約。NULL を指定する必要がある。

(プラグイン / モジュール : kernel32.dll)

解説

名前で指定したロケール用に日付を日付文字列として整形する。

[戻り値]
成功した場合、lpDateStr バッファに書き込まれた文字数を返す。cchDate パラメータが 0 に設定されている場合、関数は終端
NULL 文字を含む整形済み日付文字列を保持するのに必要な文字数を返す。成功しなかった場合は 0 を返す。拡張エラー情報を取得するには
GetLastError を呼び出すことができ、次のいずれかのエラーコードが返ることがある。
(以下省略)

[備考]
注意: この API は 2019 年 5
月の日本の改元に対応するために更新中である。アプリケーションが日本のカレンダーをサポートする場合、新しい時代を正しく扱えることを検証する必要がある。詳細は「日本の改元に向けてアプリケーションを準備する」を参照。この関数がサポートする最も古い日付は
1601 年 1 月 1 日である。曜日名、曜日略称、月名、月略称はすべてロケール識別子に基づいてローカライズされる。lpDate
が示す構造体内の日付値は有効でなければならない。関数は年、月、日、曜日の各日付値をチェックする。曜日が誤っている場合、関数は正しい値を使い、エラーを返さない。それ以外の日付値が正しい範囲外である場合、関数は失敗し、最後のエラーに
ERROR_INVALID_PARAMETER を設定する。関数は lpDate が示す SYSTEMTIME
構造体の時刻メンバ(wHour、wMinute、wSecond、wMilliseconds)を無視する。lpFormat
パラメータに不正な書式文字列が含まれている場合、関数はエラーを返さず、可能な限り最良の日付文字列を構築する。たとえば、有効な年のピクチャは
L"yyyy" と L"yy" のみであり、"L" は Unicode(16 ビット文字)文字列を示す。L"y" が渡された場合、関数は
L"yy" を仮定する。L"yyy" が渡された場合、関数は L"yyyy" を仮定する。4
文字を超える日(L"dddd")または月(L"MMMM")のピクチャが渡された場合、関数は L"dddd" または L"MMMM"
を既定とする。日付文字列内でそのままの形で残したいテキストを囲むには、アプリケーションは日付フォーマットピクチャ内で単一引用符を使う。単一引用符はエスケープ文字としても使え、単一引用符自体を日付文字列に表示できる。ただしエスケープシーケンスは
2 つの単一引用符で囲まなければならない。たとえば日付を "May '93" として表示するには、書式文字列は L"MMMM
''''yy" となる。最初と最後の単一引用符は囲み引用符である。2 番目と 3
番目の単一引用符は、世紀の前に単一引用符を表示するためのエスケープシーケンスである。日付ピクチャに数値形式の日(d または dd
のいずれか)と完全な月名(MMMM)の両方が含まれる場合、月名の属格形が日付文字列に取得される。実際の整形を行わずに既定の短い日付および長い日付形式を取得するには、アプリケーションは
GetLocaleInfoEx を LOCALE_SSHORTDATE または LOCALE_SLONGDATE
定数と共に使うべきである。代替カレンダーの日付形式を取得するには、アプリケーションは GetLocaleInfoEx を
LOCALE_IOPTIONALCALENDAR
定数と共に使う。特定のカレンダーの日付形式を取得するには、アプリケーションは適切なカレンダー識別子を渡して
GetCalendarInfoEx を使う。EnumCalendarInfoEx または EnumDateFormatsEx
を呼び出すことで特定のカレンダーの日付形式を取得することもできる。この関数はカスタムロケールからデータを取得することがある。データはコンピュータ間でもアプリケーションの実行間でも同じであることは保証されない。アプリケーションがデータを永続化または送信する必要がある場合は
Using Persistent Locale Data を参照。
(以下省略)

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs