C++でUNIX時間を取得・変換
C++で現在のエポック値を取得し、UNIX秒とUTCの日時を相互変換するコードをコピーできます。
現在のタイムスタンプを取得
#include <chrono>
#include <iostream>
int main() {
using namespace std::chrono;
std::cout << floor<seconds>(system_clock::now()).time_since_epoch().count() << '\n';
}タイムスタンプを日時に
#include <ctime>
#include <iomanip>
#include <iostream>
int main() {
std::time_t value = 1'700'000'000;
std::cout << std::put_time(std::gmtime(&value), "%Y-%m-%dT%H:%M:%SZ") << '\n';
}日時をタイムスタンプに
#include <chrono>
#include <iostream>
int main() {
using namespace std::chrono;
auto utc = sys_days{year{2023}/November/14} + hours{22} + minutes{13} + seconds{20};
std::cout << utc.time_since_epoch().count() << '\n';
}現在のUNIX時間
秒—
ミリ秒—
- UTC
- —
- 自分のタイムゾーン
- —
無料で使えます。入力内容はこのブラウザ内で処理されます。
使い方
- 最初の例をC++の環境で実行し、現在のUNIX秒を取得します。
- 2つ目の例で1700000000をUTCの日時に変換します。
- 最後の例でその日時を再びUNIX秒に戻します。
C++20のカレンダーAPIを使用します。sys_secondsはシステムクロック上の整数秒を表し、sys_daysはUTCの日付を作ります。