#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
预期产出:
2017年9月13日
对我来说没有意义。我做错了什么?
答案 0 :(得分:2)
struct tm
中的corecrt_wtime.h
在其旁边的评论中有以下评论。
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
答案 1 :(得分:1)
std::tm
的成员并非都采用原始日期值,请参阅http://en.cppreference.com/w/cpp/chrono/c/tm
tm_myear
是自1900年以来的年份,tm_mon
使用0表示1月
答案 2 :(得分:1)
tm_year
是1900年以后的年数
tm_mon
是一年中1月与0
对应的月份。