SetCalendarInfoA 函数 (winnls.h)

设置日历的区域设置信息项。 有关详细信息,请参阅 日期和时间

语法

BOOL SetCalendarInfoA(
  [in] LCID    Locale,
  [in] CALID   Calendar,
  [in] CALTYPE CalType,
  [in] LPCSTR  lpCalData
);

参数

[in] Locale

指定区域设置的区域设置标识符。 可以使用 MAKELCID 宏创建区域设置标识符或使用以下预定义值之一。

还支持以下自定义区域设置标识符。

[in] Calendar

要为其设置信息的日历 日历标识符。

[in] CalType

要设置的日历信息的类型。 只有以下 CALTYPE 值对此函数有效。 CAL_USE_CP_ACP常量仅对函数的 ANSI 版本有意义。

  • CAL_USE_CP_ACP
  • CAL_ITWODIGITYEARMAX
应用程序每个调用此函数只能指定一个日历标识符。 如果应用程序使用二进制 OR 运算符将CAL_USE_CP_ACP与 日历类型信息中定义的任何有效 CALTYPE 值组合在一起,则可能会发生异常。

[in] lpCalData

指向以 null 结尾的日历信息字符串的指针。 信息必须采用指定日历类型的格式。

返回值

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

  • ERROR_INTERNAL_ERROR。 函数中出现意外错误。
  • ERROR_INVALID_FLAGS。 为标志提供的值无效。
  • ERROR_INVALID_PARAMETER。 任何参数值都无效。

言论

此函数仅影响日历设置的用户替代部分。 它不设置系统默认值。

日历信息始终作为此函数的 Unicode 版本中的以 null 结尾的 Unicode 字符串传递,在 ANSI 版本中作为以 null 结尾的 ANSI 字符串传递。 此函数不允许使用整数。 任何数值都必须指定为 Unicode 或 ANSI 文本。

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

CAL_ITWODIGITYEARMAX可用于任何日历,即使指定区域设置不支持日历。 为了避免复杂情况,应用程序应调用 EnumCalendarInfo,以确保对感兴趣的区域设置支持日历。

注意

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

要求

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

另请参阅

EnumCalendarInfo

GetCalendarInfo

国家语言支持

国家语言支持函数