EnumDateFormatsExExEx 函数 (winnls.h)

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

注意如果设计为仅在 Windows Vista 及更高版本上运行,应用程序应优先调用此函数,而不是 EnumDateFormats 或 EnumDateFormatsEx

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

语法

BOOL EnumDateFormatsExEx(
  [in]           DATEFMT_ENUMPROCEXEX lpDateFmtEnumProcExEx,
  [in, optional] LPCWSTR              lpLocaleName,
  [in]           DWORD                dwFlags,
  [in]           LPARAM               lParam
);

参数

[in] lpDateFmtEnumProcExEx

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

[in, optional] lpLocaleName

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

[in] dwFlags

指定日期格式的标志。 应用程序可以提供以下值之一或 LOCALE_USE_CP_ACP 常量。

含义
DATE_SHORTDATE
使用短日期格式。 此值不能与任何其他标志值一起使用。
DATE_LONGDATE
使用长日期格式。 此值不能与任何其他标志值一起使用。
DATE_YEARMONTH
使用年/月格式。 此值不能与任何其他标志值一起使用。
DATE_MONTHDAY
使用月/日格式。 此值不能与任何其他标志值一起使用。

[in] lParam

要传递给回调函数的应用程序提供的参数。 此值对于多线程应用程序特别有用。

返回值

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

  • ERROR_BADDB。 函数无法访问数据。 这种情况通常不应发生,通常表示安装错误、磁盘问题或类似问题。
  • ERROR_INVALID_FLAGS。 为标志提供的值无效。
  • ERROR_INVALID_PARAMETER。 任何参数值都无效。

注解

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

从Windows 8开始:如果你的应用将语言标记从 Windows.Globalization 命名空间传递到此函数,它必须首先通过调用 ResolveLocaleName 来转换标记。

要求

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

另请参阅

EnumDateFormats

EnumDateFormatsEx

EnumDateFormatsProcExExEx

国家语言支持

国家语言支持函数