C++でタイムスタンプを取得する方法は何ですか?
C++でタイムスタンプを取得する方法には、通常、次のいくつかの方法があります。
- 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;
}
- 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;
}
- 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;
}