std :: get_time在2012年Visual Studio中无法日期工作



我正在尝试使用std :: get_time在Visual Studio 2012中解析日期和时间字符串。时间字符串似乎正确解析,但不是日期字符串。我想最终将日期字符串转换为整数进行比较。我知道我可以手动解析它,但是我想知道我是否缺少有关使用std :: get_time的内容。这是带有输出的示例代码。

struct std::tm time, date;
std::istringstream ss( "09/02/2017 23:19:12" );
std::string ss1, ss2;
ss >> ss1 >> ss2;
std::stringstream iss1( ss1 ), iss2( ss2 );
iss1 >> std::get_time( &date, "%m/%d/%Y" );
iss2 >> std::get_time( &time, "%H:%M:%S" );
std::cout << date.tm_mon << "/" << date.tm_mday << "/" << date.tm_year << ", " << time.tm_hour << ":" << time.tm_min << ":" << time.tm_sec << "n";

我得到的输出是

8/2/117, 23:19:12

这就是它的工作方式!

struct tm将月数为0-11,但天数为1-31。年份是自1900年以来的年限。

http://en.cppreference.com/w/c/chrono/tm

最新更新