为什么我的strftime()方法的年份没有输出我期望的

Pit*_*all 2 c++ strftime c++11

我试图以我想要的格式将日期转换为时间,并且它会产生意外的输出.

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);
Run Code Online (Sandbox Code Playgroud)
  • 我希望看到,17-May-2014但我看到了17-May-3914.

  • 我觉得我可能会遗漏一些东西,但我无法弄清楚是什么.有任何想法吗?

Igo*_*nik 9

tm_year 拥有自1900年以来的年数.