C++でタイムスタンプを取得する方法は何ですか?

C++でタイムスタンプを取得する方法には、通常、次のいくつかの方法があります。

  1. 1970年1月1日0時0分0秒から現在までの秒数を返す、現在のシステム時刻を取得するtime()関数が標準ライブラリにあります。
#include <ctime>
#include <iostream>

int main() {
    time_t timestamp = time(nullptr);
    std::cout << "Current timestamp: " << timestamp << std::endl;
    return 0;
}
  1. system_clock::now()関数を使用して、現在のシステム時間のタイムスタンプを取得します。1970年1月1日0時0分0秒から現在までのミリ秒数が返されます。
#include <chrono>
#include <iostream>

int main() {
    auto timestamp = std::chrono::system_clock::now().time_since_epoch().count();
    std::cout << "Current timestamp: " << timestamp << std::endl;
    return 0;
}
  1. WindowsシステムではGetSystemTime()関数、Linuxシステムではgettimeofday()関数など、OSの提供するAPIを使用してタイムスタンプを取得します。
#include <iostream>
#include <windows.h>

int main() {
    SYSTEMTIME st;
    GetSystemTime(&st);
    FILETIME ft;
    SystemTimeToFileTime(&st, &ft);
    ULARGE_INTEGER ul;
    ul.LowPart = ft.dwLowDateTime;
    ul.HighPart = ft.dwHighDateTime;
    time_t timestamp = ul.QuadPart / 10000000ULL - 11644473600ULL;
    std::cout << "Current timestamp: " << timestamp << std::endl;
    return 0;
}
bannerAds