【发布时间】:2014-08-23 16:07:10
【问题描述】:
我需要帮助找出两个给定时间作为字符串的区别。我正在使用 boost::posix_time 并从 boost::gregorian::date 构造 ptime 对象,但是当我尝试计算 time_duration 时得到 0。
这是程序
#include <boost/date_time/gregorian/gregorian.hpp>
#include "boost/date_time/posix_time/posix_time.hpp"
int main(int argc, char** argv) {
std::string date_1 = "2014-08-15 10:12:10";
std::string date_2 = "2014-08-15 16:40:02";
boost::posix_time::ptime t1(boost::gregorian::from_simple_string(date_1));
boost::posix_time::ptime t2(boost::gregorian::from_simple_string(date_2));
boost::posix_time::time_duration td = t2 - t1;
std::cout << boost::posix_time::to_simple_string(td) << std::endl;
}
这会打印出00:00:00
如何解决这个问题并获得实际的持续时间。
【问题讨论】:
-
我对这门课没有经验,但在我看来,boost.org/doc/libs/1_35_0/doc/html/date_time/doxy.html 似乎 from_simple_string() 只接受“年-月-日”。 - 你检查过 t1 和 t2 的值吗?
-
确实;调试器擅长这一点。
-
@MartinR 是的,正如 Dirk 所指出的,我使用了错误的构造函数..