如何从boost :: posix_time :: ptime获得秒数

时间:2018-06-13 04:40:40

标签: c++ boost time posix epoch

首先:我是Boost的新手,也是C ++的新手。 我正在使用一个函数,我将以下boost::posix_time::ptime time作为参数传递,我想提取POSIX时间,也就是#ep;秒,因为纪元"从此long开始。我该怎么做?

1 个答案:

答案 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。