Boost:如何从Epoch开始以毫秒为单位打印/转换posix_time::ptime?

Boost:如何从Epoch开始以毫秒为单位打印/转换posix_time::ptime?,boost,time,posix,epoch,milliseconds,Boost,Time,Posix,Epoch,Milliseconds,我无法将posix\u time::ptime转换为time\u t或posix\u time::ms表示的时间戳,或任何其他易于打印的适当类型(从历元) 实际上,我只需要以毫秒为单位打印由posix_time::ptime表示的时间戳,因此,如果有一种简单的方法以这种格式打印,我实际上不需要转换。此代码将打印自1941-12-07T00:00:00以来的毫秒数。显然,你可以选择任何适合你需要的时代 void print_ptime_in_ms_from_epoch(const boost::p

我无法将
posix\u time::ptime
转换为
time\u t
posix\u time::ms
表示的时间戳,或任何其他易于打印的适当类型(从历元)


实际上,我只需要以毫秒为单位打印由posix_time::ptime表示的时间戳,因此,如果有一种简单的方法以这种格式打印,我实际上不需要转换。

此代码将打印自1941-12-07T00:00:00以来的毫秒数。显然,你可以选择任何适合你需要的时代

void print_ptime_in_ms_from_epoch(const boost::posix_time::ptime& pt)
  {
    using boost::posix_time::ptime;
    using namespace boost::gregorian;
    std::cout << (pt-ptime(date(1941, Dec, 7))).total_milliseconds() << "\n";
  }
void print_ptime_in_ms_from_epoch(const boost::posix_time::ptime&pt)
{
使用boost::posix_time::ptime;
使用名称空间boost::gregorian;

std::此处值得注意的是,在pt中找到的时区偏移信息将影响结果。例如,如果pt是用microsec_clock::universal_time()抓取的,您将得到与使用microsec_clock::local_time()不同的答案。