我希望得到相应的日期分隔符系统的格式设置。在德尔菲,我使用的是System.SysUtils.TFormatSettings.DateSeparator,在C中有这样的东西吗?
发布于 2015-07-30 08:29:00
C语言和标准库不提供任何此类信息。该信息可以从您所针对的任何系统中获取。您如何做到这一点取决于您的目标系统。
发布于 2015-07-30 08:42:11
C语言和标准库不提供任何此类信息。该信息可以从您所针对的任何系统中获取。
感谢您的澄清,目标可以是linux和windows。在这种情况下,我要怎么做?
不同的操作系统需要不同的功能。
例如:
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来说,此链接可能是有帮助的。
发布于 2015-07-30 09:20:41
虽然正如其他答案所述,C标准没有提供此信息,但posix确实提供了这些信息。因此,在任何符合posix的系统上,您都可以使用nl_langinfo api获取地区信息。
不过,您将不会获得日期分隔符,但是strftime可以使用的日期格式来显示区域设置的正确格式化日期。如果确实需要日期分隔符,则始终可以解析它以获得日期分隔符,但是对于大多数情况下,实际的日期格式可能会更有用。
Posix对Windows的支持是不可靠的,所以您可能不得不以不同的方式对待它,但是对于几乎任何其他平台来说,这都应该对您有所帮助。
https://stackoverflow.com/questions/31718551
复制相似问题