簡體   English   中英

如何獲取 unix 時間戳作為 C++ 中的變量?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM