如何将 std::chrono::time_point 转换为自纪元以来的毫秒

如果你有 std::chrono::time_point

timepoint_now.cpp
std::chrono::time_point<std::chrono::system_clock> timepoint = std::chrono::system_clock::now();

你可以通过首先使用将其转换为 chrono::duration 来转换为自纪元以来的毫秒

timepoint_time_since_epoch.cpp
timepoint.time_since_epoch(); // Returns a duration

然后使用 std::chrono::duration_cast<std::chrono::milliseconds>(...).count() 将其转换为自纪元以来的 milliseconds 并获取纪元和时间点之间的间隔数(= 秒)。

timepoint_to_ms.cpp
std::chrono::duration_cast<std::chrono::milliseconds>(timepoint.time_since_epoch()).count()

完整示例:

timepoint_example.cpp
#include <chrono>
#include <iostream>

int main()
{
    auto timepoint = std::chrono::system_clock::now();
    std::cout << "Milliseconds since epoch: " <<
        std::chrono::duration_cast<std::chrono::milliseconds>(timepoint.time_since_epoch()).count() << std::endl;
}

例如,这会打印:

ms_output.txt
Milliseconds since epoch: 1690755347529

Check out similar posts by category: C/C++