【发布时间】:2022-11-30 00:13:46
【问题描述】:
::tm tm{0, 0, 0, 29, 10, 2022 - 1900, 0, 0}; // 10 for November
auto time_t = ::mktime(&tm);
cout << "milliseconds = " << time_t * 1000 << endl;
以上代码输出1669660200000,相当于2022年11月29日00:00:00.但它在当地时区。如何获取上述日期的 UTC 时间?
具有线程安全性的现代c++17方式将受到赞赏。
【问题讨论】:
-
现代方式是 std::chrono: en.cppreference.com/w/cpp/chrono 处理时间/日期计算和时区等。
-
timegm/_mkgmtime是mktime的 UTC 等价物,但未标准化
标签: c++17 c++ datetime time c++17 utc