c – 将steady_clock :: time_point转换为time_t

前端之家收集整理的这篇文章主要介绍了c – 将steady_clock :: time_point转换为time_t前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用steady_clock来保存某些消息的时间戳.对于调试目的,可以使用日历(或类似的东西).

对于其他时钟,静态函数为to_time_t,但在GCC(MinGW 4.8.0)上,此函数不存在.

现在我打印的东西像:

Timestamp: 26735259098242

对于时间戳我需要一个steady_clock所以我不能使用system_clock或其他.

编辑
之前的打印是从time_since_epoch().count()给出的

解决方法

假设您需要内部计算的稳定行为,而不是显示,这里可以使用一个函数转换为time_t进行显示.
using std::chrono::steady_clock;
using std::chrono::system_clock;

time_t steady_clock_to_time_t( steady_clock::time_point t )
{
    return system_clock::to_time_t(system_clock::now()
                                          + (t - steady_clock::now()));
}

如果你需要稳定的日志记录行为,你需要在启动时获得一对(system_clock :: now(),steady_clock :: now())对并在之后永远使用它.

猜你在找的C&C++相关文章