0

嗨,我有两个字符串:

entertime "2014-03-06T09:35:36Z" 
exittime "2014-03-06T09:38:36Z" 

我希望能够返回差异,在这种情况下应该返回 3 分钟。

我的方法如下所示:

 boost::gregorian::date returnTime(std::string entertime, std::string exittime){
 boost::gregorian::date denter = boost::gregorian::from_string(entertime);
 boost::gregorian::date dexit = boost::gregorian::from_string(entertime);
 boost::gregorian::date dresult = dexit-denter;

有什么办法可以得到这个时差吗?

先感谢您!

4

1 回答 1

1

不幸的是,您的特定时间戳没有直接转换器,如果您可以删除所有分隔符并形成一个符合 iso 规范的字符串,那么您可以执行以下操作:

  auto ts1 = boost::posix_time::from_iso_string("20140306T093536Z");
  auto ts2 = boost::posix_time::from_iso_string("20140306T093836Z");

  std::cout << (ts2 - ts1) << std::endl;

这应该00:03:00像您期望的那样输出。注意这里的类型是(ts1&ts2boost::posix_time::ptime,增量是 a boost::posix_time::time_duration

于 2014-03-07T14:02:20.717 回答