如何绕过strptime怪异行为?

时间:2019-06-16 15:27:25

标签: c++ ctime

是我还是函数strptime在这里错误?我期望seconds的值为1,但我得到-3599。 我的编译器是gcc版本4.9.2。 如果是真正的错误,您将如何绕过此问题?您建议使用哪个库将字符串转换为任何日期对象?谢谢。

#include <iostream>
#include <ctime>

int main()
{
  time_t t1, t2;
  struct tm timeDate1, timeDate2;
  double seconds;

  std::string date1 = "2019-06-11";
  std::string date2 = "2019-06-11";

  strptime(date1.c_str(), "%Y-%m-%d", &timeDate1);
  strptime(date2.c_str(), "%Y-%m-%d", &timeDate2);

  timeDate1.tm_sec = 0;
  timeDate1.tm_min = 0;
  timeDate1.tm_hour = 0;

  timeDate2.tm_sec = 1;
  timeDate2.tm_min = 0;
  timeDate2.tm_hour = 0;

  seconds = difftime(t2, t1);

  std::cout << seconds << std::endl;
}

0 个答案:

没有答案