[英]How do I get the unix timestamp as a variable in 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 << " s\n";
}
注意,這里使用的是system_clock
。 它是唯一獲得“掛鍾”時間的時鍾。 其他時鍾,如steady_clock
,就其值的含義而言是未定義的。 即它可以是從上次重新啟動開始的時間或從程序啟動開始的時間或其他任何時間, steady_clock
的唯一保證是它在穩步增加。 同時system_clock
可以返回 go,例如當用戶更改它或調整夏令時時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.