EnumDateFormatsExA 函数 (winnls.h)

枚举可用于指定区域设置的长日期、短日期或年份/月格式。

注意 仅在 Windows Vista 及更高版本上运行的任何应用程序都应优先使用此函数 EnumDateFormatsExEx
 

语法

BOOL EnumDateFormatsExA(
  [in] DATEFMT_ENUMPROCEXA lpDateFmtEnumProcEx,
  [in] LCID                Locale,
  [in] DWORD               dwFlags
);

参数

[in] lpDateFmtEnumProcEx

指向应用程序定义的回调函数的指针。 有关详细信息,请参阅 EnumDateFormatsProcEx

[in] Locale

区域设置标识符,用于指定要为其检索日期格式信息的区域设置。 可以使用 MAKELCID 宏创建标识符或使用以下预定义值之一。

Windows Vista 及更高版本: 还支持以下自定义区域设置标识符。

[in] dwFlags

指定日期格式的标志。 有关详细定义,请参阅 EnumDateFormatsExdwFlags 参数。

返回值

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

  • ERROR_INVALID_FLAGS。 为标志提供的值无效。
  • ERROR_INVALID_PARAMETER。 任何参数值都无效。

言论

注意 此 API 正在更新,以支持 2019 年 5 月日本时代更改。 如果应用程序支持日语日历,则应验证它是否能够正确处理新纪元。 有关详细信息,请参阅 为日本时代更改准备应用程序
 
该函数通过将日期格式字符串指针(一次一个)传递给指定的应用程序定义的回调函数来枚举日期格式。 此过程一直持续到 EnumDateFormatsEx 查找最后一个日期格式或回调函数返回 FALSE

此函数枚举指定区域设置的所有日期格式,包括备用日历(如果有)。 但是,日历标识符不会与日期格式一起枚举,从而使具有备用日历的区域设置的格式难以使用。

此函数可以从 自定义区域设置枚举数据。 数据不保证从计算机到计算机或应用程序运行之间相同。 如果应用程序必须持久保存或传输数据,请参阅 使用持久区域设置数据

当此函数的 ANSI 版本与仅 Unicode 区域设置标识符一起使用时,该函数可能会成功,因为操作系统使用系统代码页。 但是,系统代码页中未定义的字符在字符串中显示为问号(?)。

应用程序应使用 EnumDateFormatsEx(而不是 EnumDateFormats)来枚举具有备用日历的区域设置的日期格式。

注意

winnls.h 标头将 EnumDateFormatsEx 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 winnls.h (包括 Windows.h)
Kernel32.lib
DLL Kernel32.dll

另请参阅

EnumDateFormats

EnumDateFormatsExEx

EnumDateFormatsProcEx

国家语言支持

国家语言支持函数