我正在尝试将日期转换为我想要的格式的时间,并且它会产生意外的输出。
struct tm dateTime = {0};
char buffer[80]= {0};
dateTime.tm_year = 2014;
dateTime.tm_mon = 4;
dateTime.tm_mday =17;
strftime(buffer, _countof(buffer), "%d-%b-%Y", &dateTime);
我希望看到17-May-2014
,但我会看到17-May-3914
。
我觉得我可能会遗漏一些东西,但我无法弄清楚是什么。有什么想法吗?
答案 0 :(得分:9)
tm_year
拥有自1900年以来的年数。
答案 1 :(得分:1)
您应该使用dateTime.tm_year = 2014-1900;
1900值是tm
的校准值 - 它存储1900年后的年数。