我如何得到unix时间戳作为c++中的变量?



我试图制作一个准确的程序来告诉您时间,但是我无法获得当前的Unix时间戳。我能不能得到时间戳?

我尝试使用int time = std::chrono::steady_clock::now();,但这给了我一个错误,说'std::chrono'没有被声明。顺便说一下,我是c++的新手

如果你有答案就告诉我。

不确定为什么需要使用Unix时间戳,因为c++ 11及更高版本有更方便的类型和函数来处理时间。但无论如何,这里有一个例子,如何以新的和旧的方式完成,从这里复制:https://en.cppreference.com/w/cpp/chrono/system_clock/to_time_t

#include <iostream>
#include <ctime>
#include <chrono>
#include <thread>
using namespace std::chrono_literals;
 
int main()
{
// The old way
std::time_t oldt = std::time(nullptr);
 
std::this_thread::sleep_for(2700ms);
 
// The new way
std::time_t newt = std::chrono::system_clock::to_time_t(
std::chrono::system_clock::now());
 
std::cout << "oldt-newt == " << oldt-newt << " sn";
}

注意,这里使用了system_clock。这是唯一一个"墙上时钟"的钟。时间。其他时钟,如steady_clock,在其值的含义方面是未定义的。也就是说,它可以是上次重新启动的时间,也可以是从程序启动的时间或其他任何时间,steady_clock唯一的保证是它在稳步增加。同时,system_clock可以返回,例如当用户更改它或当调整为夏令时。

相关内容

  • 没有找到相关文章

最新更新