c++ - std::get_time 不适用于 visual studio 2012 中的日期

标签 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

最佳答案

这就是它的工作方式!

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

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

关于c++ - std::get_time 不适用于 visual studio 2012 中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45963411/

相关文章:

c++ - 计算 C 中 NSDate 之间的秒数

c++ - 图标不是 3.00 格式

.net - XAML 语法错误阻碍了设计器,但编译正常

c++ - 如何使用 std :vector made available to Swift classes 创建 Objective-c 类

c++ - 如何在 C++ 中一次性生成不同的随机数?

C++类静态成员初始化

c++ - 为什么这个 vector 赋值不起作用?

c++ - 错误 : LNK 2019 : unresolved external symbol _imp_CrtDbgReportw in Visual Studio

f# - 缺少 ".NETFramework,Version=v4.0,Profile=Profile47"的定位包

c++ - STL和stdlib有什么关系