【发布时间】:2017-09-13 11:27:44
【问题描述】:
我有以下代码:
#include <iostream>
#include <ctime>
using namespace std;
int main() {
tm _tm;
strptime("2017-04-17", "%Y-%m-%d", &_tm);
char buf[16];
strftime(buf, sizeof(buf), "%A", &_tm);
cout << buf << endl;
}
在Ideone 上,它正确输出“星期一”(星期几)。当我在 iOS 上编译和运行相同的代码时,它返回“Sunday”。什么给了?!
编辑:对于那些不明白这也是一个 C 问题的人,这里是 C 代码。问题仍然存在:
#include <stdio.h>
#include <time.h>
int main(void) {
struct tm _tm;
strptime("2017-04-17", "%Y-%m-%d", &_tm);
char buf[16];
strftime(buf, sizeof(buf), "%A", &_tm);
printf(buf);
}
【问题讨论】:
-
来自 man7.org,“使用了环境变量 TZ 和 LC_TIME。”您可能希望在运行程序时检查每个系统上的这两个值。
-
@WeatherVane 我相信这也是一个有效的 C 问题。请不要删除标签。
-
@Olaf 你真的需要我将其重新格式化为 C 以表明它也是一个有效的 C 问题吗?
-
@aardvarkk ... 是吗?在目前的形式中,问题中没有任何与 C 相关的内容。
-
而且
strptime不是标准函数。 ideone 当然不是一个权威性的参考。