c - 如何从 C/C++ 中的当前语言环境获取短日期格式字符串?
问题描述
以下代码(Windows、C++)设置当前语言环境并检索格式化的短日期字符串,该字符串根据语言环境的短日期格式“%c”进行格式化。
time_t rawtime;
struct tm * timeinfo;
char buffer [80];
time (&rawtime);
timeinfo = localtime (&rawtime);
strftime (buffer,80,"%c",timeinfo);
假设这给出了给定日期和语言环境的“31/01/2012”。这对应于“%d/%m/%Y”的日期格式,尽管已指定“%c”。
有没有办法我可以获取格式字符串本身,即给定语言环境的“%d/%m/%Y”?
解决方案
langinfo 中有一个调用来执行此操作
作为一个简单的演示
#include <stdio.h>
#include <langinfo.h>
int main()
{
printf("%s\n", nl_langinfo( D_FMT ) );
}
如果您的 C 编译器不兼容 POSIX,并且我认为 Windows 应该是,那么这个问题的答案可能更像是一个指南
推荐阅读
- r - 在 stat_function 图中创建锐利的垂直线
- python - 使用 exec() 从字符串运行 lambda 函数
- python - 有没有一种有效的方法来生成对称随机矩阵?
- php - 如何访问这个多维数组中对象的属性?
- c++ - 什么是带有朋友说明符的析构函数?
- python - 如何将所有值保存在一个 txt 文件中?
- rxjs - RxJS从多个mergeMap中输出一个Subscription数组
- qt - 有没有办法在 Qt5 qml 中做 C++ 宏?
- jquery - Ajax 进度条,直到我的成功功能完成
- mysql - 警告:#1292 截断不正确的 DOUBLE 值:'xxx'