有没有办法在c ++中获取uint64_t中的日期的utc纳秒

时间:2017-03-21 06:40:17

标签: c++ boost utc

我希望在特定日期的uint64_t中获得自纪元以来的纳秒数,是否有任何c ++库中的函数可以获得它。

2 个答案:

答案 0 :(得分:1)

您可以使用Howard Hinnant's free, open-source date/time librarystd::chrono扩展到真实的日历中:

#include "date.h"
#include <iostream>

int
main()
{
    using namespace date;
    using namespace std::chrono_literals;
    uint64_t k = (sys_days{2017_y/mar/21} + 10h + 27min + 5s + 
                  123456789ns).time_since_epoch().count();
    std::cout << k << '\n';
}

输出:

1490092025123456789

答案 1 :(得分:0)

如果您可以访问C ++ 11库,请查看std::chrono库。您可以使用它来获取自Unix Epoch以来的毫秒数:

#include <chrono>

// ...

using namespace std::chrono;
milliseconds ms = duration_cast< milliseconds >(
    system_clock::now().time_since_epoch()
);