我希望根据系统的格式设置获取日期分隔符。
在使用System.SysUtils.TFormatSettings.DateSeparator
的 Delphi 中, C 中有类似的内容吗?
答案 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的支持很不错,所以你可能不得不采用不同的方式对待它,但对于任何其他平台来说,这应该对你有所帮助。