C++ 如何将基于boost的计时器转换为基于Unix的(boost-date\u-time-free)类?

C++ 如何将基于boost的计时器转换为基于Unix的(boost-date\u-time-free)类?,c++,unix,boost,C++,Unix,Boost,所以我是Unix新手,不知道它的API。我想知道Unix上的镜像API是什么 #include <boost/date_time.hpp> class timer { public: timer(); void restart(); boost::posix_time::time_duration elapsed() const; private: boost::posix_time::ptime start_time

所以我是Unix新手,不知道它的API。我想知道Unix上的镜像API是什么

#include <boost/date_time.hpp>

class timer
{
public:
        timer();
        void restart();
        boost::posix_time::time_duration elapsed() const;
private:
        boost::posix_time::ptime start_time;
};

// and cpp looks like
#include "timer.h"

timer::timer() : start_time(boost::posix_time::microsec_clock::local_time()) { }

void timer::restart()
{
        start_time = boost::posix_time::microsec_clock::local_time();
}

boost::posix_time::time_duration timer::elapsed() const
{
        return boost::posix_time::microsec_clock::local_time() - start_time;
}
#包括
班级计时器
{
公众:
定时器();
无效重新启动();
boost::posix_time::time_duration appeased()const;
私人:
boost::posix_time::ptime start_time;
};
//cpp看起来像
#包括“timer.h”
timer::timer():开始时间(boost::posix_time::microsec_clock::local_time()){}
无效计时器::重新启动()
{
开始时间=boost::posix时间::微秒时钟::本地时间();
}
boost::posix_time::time_duration timer::appeased()const
{
返回boost::posix_time::microsec_clock::local_time()-开始时间;
}

那么,如何使用Unix api在我的简单类中删除boost用法呢?

Unix时间是从一个历元(1970-01-01T00:00:00Z)经过的秒数,您已经知道它的其余部分:

using boost::posix_time;
ptime unixEpoch( 1970, 1, 1 );
time_t t = (time_t) (microsec_clock::local_time() - unixEpoch).total_seconds()

为什么不继续使用Boost呢?似乎并非所有Unix版本都支持Boost日期和时间