13

我正在使用steady_clock来保存一些消息的时间戳。出于调试目的,拥有日历(或类似的东西)很有用。

对于其他时钟,有静态功能to_time_t,但在 GCC (MinGW 4.8.0) 上不存在此功能。

现在我打印如下内容:

Timestamp: 26735259098242

对于时间戳,我需要一个 stable_clock,所以我不能使用system_clock或其他人。

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

4

1 回答 1

24

假设您需要稳定的行为来进行内部计算,而不是显示,这里有一个函数可以用来转换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() )在启动时获得一对并在之后永远使用它。

于 2013-09-04T19:55:53.840 回答