将来调用 system_clock::now() 可以给出过去的时间吗?例如,因为夏令时?

调用 system_clock::now().time_since_epoch() 怎么样?还是保证总是越来越晚的时间点返回?即使没有保证,在实践中是否所有实现都以某种方式做到这一点(如果是,如何)?

最佳答案

std::chrono 提供 system_clocksteady_clock 用于通用时间跟踪。
system_clock 类将完全依赖于平台,因此如果用户要更改系统时间(或 NTP 等),它显然会将您带入过去/ future 。如果您不使用本地时间,用户更改 时区 不会影响您。
steady_clock 另一方面是完全一致的(尽管 VS2013 错误地实现了这一点,它的行为就像 system_clock ,遗憾的是)

因此,如果您需要知道绝对时间而不是简单的时间流逝,我建议您在启动时从 system_clock 获取一个值,并从那时起使用 steady_clock

关于c++ - 将来调用 system_clock::now() 可以给出过去的时间吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34365733/

10-11 22:35
查看更多