1. ホーム
  2. c++

[解決済み] C++でUnixのタイムスタンプを取得する

2022-03-01 12:40:37

質問

を取得するにはどうすればよいですか? uint unix タイムスタンプを C++ で使用できますか?少しググってみましたが、ほとんどのメソッドは時間を表現するためにもっと複雑な方法を探しているようです。単に uint ?

解決方法は?

C++20では、以下の保証が導入されました。 time_since_epoch はUNIXエポックからの相対値であり cppreference.com は、私が関連するコードを抽出し、時間ではなく秒の単位に変更した例を示しています。

#include <iostream>
#include <chrono>
 
int main()
{
    const auto p1 = std::chrono::system_clock::now();
 
    std::cout << "seconds since epoch: "
              << std::chrono::duration_cast<std::chrono::seconds>(
                   p1.time_since_epoch()).count() << '\n';
}


C++17以前を使用。 time() は最も単純な関数で、エポックからの秒数、つまり Linux と UNIX では少なくとも UNIX エポックとなります。 Linuxでは マニュアルはこちら .

上記のリンク先の cppreference のページでは、このようになります。 :

#include <ctime>
#include <iostream>
 
int main()
{
    std::time_t result = std::time(nullptr);
    std::cout << std::asctime(std::localtime(&result))
              << result << " seconds since the Epoch\n";
}