首先:我是Boost的新手,也是C ++的新手。
我正在使用一个函数,我将以下boost::posix_time::ptime time
作为参数传递,我想提取POSIX
时间,也就是#ep;秒,因为纪元"从此long
开始。我该怎么做?
答案 0 :(得分:1)
您可以将ptime
转换为std::tm
,并使用mktime()
将其转换为time_t
:
#include <ctime>
#include <boost/date_time/posix_time/posix_time.hpp>
boost::posix_time::ptime time;
std::tm time_tm = to_tm(time);
time_t posix_time = mktime(&time_tm);
正如rafix07所指出,to_time_t()
中还有boost/date_time/posix_time/conversion.hpp
,它直接执行此转换。我没有找到关于它的文档,但我检查了源代码,它至少存在于Boost 1.66。