我想在Qt中做这样的事情:给定当前时间戳将其转换为纳秒。
当前的解决方案并没有给我真正的纳秒值,在时间戳值之后只有0!有人可以帮助我,我在Qt中找不到这样的东西。
感谢您的帮助。
答案 0 :(得分:1)
如果使用C ++ 11编译器,则可以使用std::chrono
函数。没有Qt,但它会起作用。
#include <iostream>
#include <chrono>
int main()
{
std::chrono::time_point<std::chrono::system_clock> timestamp =
std::chrono::system_clock::now();
const auto ns = std::chrono::duration_cast<std::chrono::nanoseconds>
(timestamp.time_since_epoch()).count();
std::cout << ns << std::endl;
return 0;
}
答案 1 :(得分:-1)
如果您希望当前时间戳以纳秒为单位,QDateTime::currentMSecsSinceEpoch() * 1000000
可以解决问题。
答案 2 :(得分:-1)
您正在寻找QDateTime课程。您可以将给定的日期时间转换为自纪元以来的msecs,反之亦然。
要将日期时间转换为msecs,请使用toMSecsSinceEpoch:
QDateTime currentDateTime = QDateTime::currentDateTime();
std::cout<< "Current DateTime : "
<< currentDateTime.toString().toStdString()
<< "\nCurrent DateTime in Milliseconds since epoch :\n"
<< currentDateTime.toMSecsSinceEpoch()
<< std::endl;
要转换为nanosecs,只需将msecs转换为nanosecs:
const qlonglong nanosecs = currentDateTime.toMSecsSinceEpoch() * 1000000:
副主席,fromMSecsSinceEpoch:
const qlonglong nanosecs = 5555555;
QDateTime myDateTime = QDateTime::fromMSecsSinceEpoch(nanosecs / 1000000);