enumTimeFormatsA 函数 (winnls.h)

枚举可用于标识符指定的区域设置的时间格式。

注意 出于互操作性原因,应用程序应首选 EnumTimeFormatsEx 函数而不是 EnumTimeFormats ,因为 Microsoft 正在迁移到使用区域设置名称而不是新区域设置的区域设置标识符。 仅在 Windows Vista 及更高版本上运行的任何应用程序都应使用 EnumTimeFormatsEx
 

语法

BOOL EnumTimeFormatsA(
  [in] TIMEFMT_ENUMPROCA lpTimeFmtEnumProc,
  [in] LCID              Locale,
  [in] DWORD             dwFlags
);

参数

[in] lpTimeFmtEnumProc

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

[in] Locale

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

[in] dwFlags

时间格式。 此参数可以指定以下任意值的组合。

标志 含义
0
使用当前用户的长时间格式。
TIME_NOSECONDS
Windows 7 及更高版本:使用当前用户的短时间格式。
注意 此值不适用于此函数的 ANSI 版本 EnumTimeFormatsA
 
LOCAL_USE_CP_ACP
使用此函数的 ANSI 版本指定的 EnumTimeFormatsA (不建议) 使用系统默认的 Windows ANSI 代码页 (ACP) 而不是区域设置代码页。

返回值

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

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

注解

函数通过将指向包含时间格式的缓冲区的指针传递给应用程序定义的回调函数来枚举时间格式。 枚举中的第一个值始终是用户默认 (替代) 值。 函数将继续枚举,直到找到最后一次格式或回调函数返回 FALSE

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

当此函数的 ANSI 版本与仅限 Unicode 的区域设置标识符一起使用时,调用可能会成功,因为系统使用系统代码页。 但是,在系统代码页中未定义的字符在字符串中显示为问号 (“?”) 。 请注意,将来引入的任何 dwFlags 新值都不适用于 ANSI 版本。

注意

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

要求

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

另请参阅

EnumTimeFormatsEx

EnumTimeFormatsProc

国家语言支持

国家语言支持函数