如何在C中获取DateSeparator

时间:2015-07-30 08:17:59

标签: c date format separator

我希望根据系统的格式设置获取日期分隔符。 在使用System.SysUtils.TFormatSettings.DateSeparator Delphi 中, C 中有类似的内容吗?

3 个答案:

答案 0 :(得分:3)

C语言和标准库不提供任何此类信息。可以从您定位的任何系统获取此信息。您如何做到这取决于您定位的系统。

答案 1 :(得分:0)

  

C语言和标准库不提供任何此类   信息。这些信息可以从您的任何系统获得   正在瞄准。

  

感谢您的澄清,目标可能是linux和windows。在那些情况下,如何做我的要求?

您需要针对不同操作系统的不同功能。

e.g。

GetDataSeparator()
{
#ifdef _WIN32
    Here goes implementation for Windows
#else
    May be more preprocessor commands and implementations for Linux/Mac
#endif
}

不确定我是否理解正确。

对于Windows,您可以解析HKCU\Control Panel\International中找到的值。对于Linux this link可能会有帮助。

答案 2 :(得分:0)

虽然如其他答案所述,C标准不提供此信息,但posix确实如此。因此,在任何符合posix标准的系统上,您都可以使用nl_langinfo api获取区域设置信息。

虽然您不会获得日期分隔符,但strftime可以使用日期格式显示区域设置的格式正确的日期。你可以随时解析这个以获得日期分隔符,如果这是你真正需要的,但对于大多数用途,实际的日期格式可能会更有用。

Posix对Windows的支持很不错,所以你可能不得不采用不同的方式对待它,但对于任何其他平台来说,这应该对你有所帮助。