C++ 将时间戳转换为纳秒(Qt)

C++ 将时间戳转换为纳秒(Qt),c++,qt,timestamp,C++,Qt,Timestamp,我想在Qt中做这样的事情:给定当前时间戳,将其转换为纳秒 当前的解决方案没有给我真正的纳秒值,只有时间戳值之后的零!有人能帮帮我吗,我在Qt里没找到这样的东西 谢谢您的帮助。如果您想要以纳秒为单位的当前时间戳,QDateTime::CurrentMseCSinceepoch()*1000000就可以了。您正在寻找类。您可以将给定的日期时间转换为自历元起的毫秒或反之亦然 要将日期时间转换为毫秒,请使用: 维切维萨: 如果使用C++11编译器,则可以使用std::chrono函数。没有Qt,但它可以

我想在Qt中做这样的事情:给定当前时间戳,将其转换为纳秒

当前的解决方案没有给我真正的纳秒值,只有时间戳值之后的零!有人能帮帮我吗,我在Qt里没找到这样的东西


谢谢您的帮助。

如果您想要以纳秒为单位的当前时间戳,
QDateTime::CurrentMseCSinceepoch()*1000000
就可以了。

您正在寻找类。您可以将给定的日期时间转换为自历元起的毫秒或反之亦然

要将日期时间转换为毫秒,请使用:

维切维萨:


如果使用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;
}
#包括
#包括
int main()
{
std::chrono::time\u点时间戳=
std::chrono::system_clock::now();
const auto ns=std::chrono::duration\u cast
(timestamp.time_-since_-epoch()).count();

std::到目前为止你做了什么?时间戳是一个瞬间,纳秒是一个持续时间。如果你想要纳秒,那么纪元的起点是什么?从今天开始,1970年1月1日,公元0年?你使用C++11编译器吗?是的,我使用C++11编译器,它仍然有毫秒精度,但还有六个额外的零。在原始版本上帖子中,OP没有给出他想要经过的ns的详细信息,只是为了将ms timestamp转换为ns……对不起,没有人理解,但是是的,@cbuchart说的是在时间戳值之后获得纳秒而不是零,这正是我要求C++11;)
const qlonglong nanosecs = currentDateTime.toMSecsSinceEpoch() * 1000000:
const qlonglong nanosecs = 5555555;
QDateTime myDateTime = QDateTime::fromMSecsSinceEpoch(nanosecs / 1000000);
#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;
}