std :: get_time在visual studio 2012中的日期不起作用

时间:2017-08-30 14:43:03

标签: c++ visual-studio-2012 std

我正在尝试使用visual studio 2012中的std :: get_time来解析日期和时间字符串。时间字符串似乎正确解析但不是日期字符串。我想最终将日期字符串转换为整数进行比较。我知道我可以手动解析它,但我想知道我是否遗漏了关于使用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

1 个答案:

答案 0 :(得分:1)

这就是它的工作方式!

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

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