Windows上的std :: get_time失败,日期超过2036 -01-01

时间:2015-03-19 14:35:21

标签: c++ std

我在Windows上为std :: get_time函数获得了一个奇怪的行为。 当dateStr中的日期为2036-01-01或更高版本时,以下代码会生成一个空的expirationTm变量。

string dateStr = "2035-12-01";    
expirationTm.tm_mday = 0;
expirationTm.tm_mon = 0;
expirationTm.tm_year = 0;
expirationTm.tm_wday = 0;
expirationTm.tm_yday = 0;
expirationTm.tm_sec = 0;
expirationTm.tm_min = 0;
expirationTm.tm_hour = 0;
expirationTm.tm_isdst = 0;
istringstream ss(dateStr);
ss >> std::get_time(&expirationTm, "%Y-%m-%d");

我在文档中看到的任何内容都表明get_time不支持2036年以后的日期。 这是一个已知的错误 ?

0 个答案:

没有答案