我试图制作一个准确的程序来告诉您时间,但是我无法获得当前的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
可以返回,例如当用户更改它或当调整为夏令时。