如何找到两个日期之间以秒和纳秒为单位的时间差?

问题描述 投票:0回答:1

我需要计算Unix纪元(1970年1月1日UTC的00:00:00)与将来用户选择的某个日期之间的秒和纳秒。

这是到目前为止我通过其他Stack Overflow答案所找到的内容:

// seconds and nanoseconds past epoch
auto now = std::chrono::system_clock::now().time_since_epoch();
auto now_ns = std::chrono::duration_cast<std::chrono::nanoseconds>(now);
auto now_sec = std::chrono::duration_cast<std::chrono::seconds>(now);

// output total ns since epoch
qDebug() << now_ns.count() << "ns";
// output total secs since epoch
qDebug() << now_sec.count() << "secs";

auto nano_secs = now_ns.count() - (now_sec.count() * 1000000000);
// output ns minus whole seconds
qDebug() << "nano_secs = " << nano_secs;

使用此功能,我可以获得当前日期和时间的搜索结果,但这不是我所需要的。出于演示目的,假设将来的日期为UTC 2020年7月1日00:00:00。我该如何计算呢?

c++ datetime time chrono
1个回答
0
投票

如果您对要转换的日期的1秒钟的分辨率感到满意,则可以使用mktime

mktime

请注意,不需要纳秒数,因为秒数始终是整数。

© www.soinside.com 2019 - 2024. All rights reserved.