如何从纪元到午夜获得UTC秒

rah*_*man 2 c++

我必须实例化一个自定义库类的对象,该类需要nanoseconds since 'epoch' in UTC time构造:

class utc_time
{
public:
utc_time(TYPE nanoseconds_since_epoch):
_nanoseconds_since_epoch(nanoseconds_since_epoch){}

private:
TYPE _nanoseconds_since_epoch;
};
Run Code Online (Sandbox Code Playgroud)

我的输入是什么nanoseconds since 'midnight' in UTC time.当然,我需要获得epoch直到最后midnight纳秒(以UTC为单位)将其添加到我的输入并将其提供给我的类构造函数.我知道我们有gtime可能会有所帮助,但我不知道如何提取所需的信息.

我很感激你的线索

How*_*ant 8

在C++ 11及更高版本中,<chrono>可以非常轻松地使用它:

#include <chrono>
#include <iostream>

int
main()
{
    using namespace std::chrono;
    using namespace std;
    using days = duration<int, ratio<86400>>;
    nanoseconds last_midnight =
        time_point_cast<days>(system_clock::now()).time_since_epoch();
    cout << last_midnight.count() << '\n';
}
Run Code Online (Sandbox Code Playgroud)