#include <ctime>
#include <iostream>
using namespace std;
int main()
{
char dateStringBuffer[256] = "";
tm date;
date.tm_year = 2017;
date.tm_mon = 9;
date.tm_mday = 13;
strftime(dateStringBuffer, 256, "%d.%m.%Y", &date);
cout << dateStringBuffer;
}
输出是:
13.10.3917
预期输出:
13.09.2017
这对我来说毫无意义。我做错了什么?
最佳答案
corecrt_wtime.h
中的 struct tm
在其成员旁边有以下注释。
int tm_mon; // months since January - [0, 11]
int tm_year; // years since 1900
这意味着你应该做这样的事情:
date.tm_year = 117;
date.tm_mon = 8;
date.tm_mday = 13;
这将为您提供预期的输出:13.09.2017
关于C++ strftime() 不正确的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49647524/