Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从C/C+;中的当前语言环境中获取短日期格式字符串+;?_C_Windows_Date - Fatal编程技术网

如何从C/C+;中的当前语言环境中获取短日期格式字符串+;?

如何从C/C+;中的当前语言环境中获取短日期格式字符串+;?,c,windows,date,C,Windows,Date,以下代码(Windows,C++)设置当前区域设置并检索格式化的短日期字符串,该字符串根据区域设置的短日期格式“%C”进行格式化 假设给定日期和地点为“2012年1月31日”。 这对应于日期格式“%d/%m/%Y”,尽管已指定“%c” 是否有一种方法可以获取格式字符串本身,即给定区域设置的“%d/%m/%Y”?在langinfo中有一个调用来完成此操作 作为一个简单的演示 #include <stdio.h> #include <langinfo.h> int main

以下代码(Windows,C++)设置当前区域设置并检索格式化的短日期字符串,该字符串根据区域设置的短日期格式“%C”进行格式化

假设给定日期和地点为“2012年1月31日”。 这对应于日期格式“%d/%m/%Y”,尽管已指定“%c”


是否有一种方法可以获取格式字符串本身,即给定区域设置的“%d/%m/%Y”?

在langinfo中有一个调用来完成此操作

作为一个简单的演示

#include <stdio.h>
#include <langinfo.h>

int main()
{
    printf("%s\n", nl_langinfo( D_FMT ) );
}
#包括
#包括
int main()
{
printf(“%s\n”,nl_langinfo(D_FMT));
}
如果你的C编译器不是POSIX兼容的,我认为Windows应该是这样的,那么这个问题的答案可能更像是一个指南


这是一个外部库。没有标准的C或C++解决方案?还是WinApi调用?POSIX是相当标准的。我以为Windows应该是POSIX complient。请参阅为您感兴趣的区域中的本机windows问题的答案添加的链接选择:“2012年1月31日”不能对应于“%m/%d/%Y”的日期格式,但它可以对应于“%d/%m/%Y”的日期格式。@Ian Abbott:当然。编辑。
#include <stdio.h>
#include <langinfo.h>

int main()
{
    printf("%s\n", nl_langinfo( D_FMT ) );
}