字符串boost :: gregorian的日期

时间:2014-03-07 13:43:18

标签: c++ date boost-date-time

您好我有两个字符串:

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;

有什么方法可以获得这个时间差异吗?

提前谢谢!

1 个答案:

答案 0 :(得分: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&amp; ts2boost::posix_time::ptime,delta为boost::posix_time::time_duration