GetCalendarDateFormatEx 函数

已弃用。 使用指定的日期和日历检索指定区域设置的格式正确的日期字符串。 用户可以指定短日期格式、长日期格式、年月格式或自定义格式模式。

注意

此函数可以检索在发布之间更改的数据,例如,由于自定义区域设置。 如果应用程序必须保留或传输数据,请参阅 使用永久性区域设置数据

 

语法

BOOL GetCalendarDateFormatEx(
  _In_        LPCWSTR       lpszLocale,
  _In_        DWORD         dwFlags,
  _In_  const LPCALDATETIME lpCalDateTime,
  _In_        LPCWSTR       lpFormat,
  _Out_       LPWSTR        lpDateStr,
  _In_        int           cchDate
);

参数

lpszLocale [in]

指向区域设置名称或以下预定义值之一的指针。

dwFlags [in]

指定日期格式选项的标志。 如果未将 lpFormat 设置为 NULL,则必须将此参数设置为 0。 如果 lpFormat 设置为 NULL,则应用程序可以指定以下值和 LOCALE_NOUSEROVERRIDE的组合。

含义
DATE_SHORTDATE
使用短日期格式。 这是默认值。 此值不能与 DATE_LONGDATE 或 DATE_YEARMONTH 一起使用。
DATE_LONGDATE
使用长日期格式。 此值不能与DATE_SHORTDATE或DATE_YEARMONTH一起使用。
DATE_YEARMONTH
使用年/月格式。 此值不能与DATE_SHORTDATE或DATE_LONGDATE一起使用。
DATE_LTRREADING
为从左到右的阅读布局添加标记。 此值不能与 DATE_RTLREADING 一起使用。
DATE_RTLREADING
为从右到左的阅读布局添加标记。 此值不能与 DATE_LTRREADING

 

lpCalDateTime [in]

指向 CALDATETIME 结构的指针,该结构包含要设置格式的日期和日历信息。

lpFormat [in]

指向用于构成日期字符串的格式图片字符串的指针。 格式图片字符串的可能值在 日、月、年和纪元格式图片中定义。

格式图片字符串必须以 null 结尾。 函数仅将区域设置用于未在格式图片字符串中指定的信息,例如区域设置的日期和月份名称。 如果函数要使用指定区域设置的日期格式,则应用程序会将此参数设置为 NULL

lpDateStr [out]

指向此函数接收格式化日期字符串的缓冲区的指针。

cchDate [in]

lpDateStr 缓冲区的大小(以字符为单位)。 或者,应用程序可以将此参数设置为 0。 在这种情况下,函数返回保存格式化日期字符串所需的字符数,并且不使用 lpDateStr 参数。

返回值

如果成功,则返回写入 lpDateStr 缓冲区的字符数。 如果 cchDate 参数设置为 0,则该函数将返回保存格式化日期字符串所需的字符数,包括终止 null 字符。

如果此函数不成功,则返回 0。 若要获取扩展错误信息,应用程序可以调用 GetLastError,这会返回以下错误代码之一:

  • ERROR_DATE_OUT_OF_RANGE。 指定的日期在范围外。
  • ERROR_INSUFFICIENT_BUFFER。 提供的缓冲区大小不够大,或者错误地设置为 NULL
  • ERROR_INVALID_FLAGS。 为标志提供的值无效。
  • ERROR_INVALID_PARAMETER。 任何参数值都无效。

备注

此函数支持的最早日期是 1601 年 1 月 1 日。

此函数没有关联的头文件或库文件。 应用程序可以使用 DLL 名称 (Kernel32.dll) 调用 LoadLibrary 以获取模块句柄。 然后,它可以使用该模块句柄和此函数的名称调用 GetProcAddress 以获取函数地址。

要求

要求
最低受支持的客户端
Windows Vista [仅限桌面应用]
最低受支持的服务器
Windows Server 2008 [仅限桌面应用]
DLL
Kernel32.dll

另请参阅

国家语言支持

国家语言支持函数

日、月、年和纪元格式图片

NLS:基于名称的 API 示例

EnumDateFormatsExExEx

GetDateFormat

GetDateFormatEx

CALDATETIME