将来调用 system_clock::now() 可以给出过去的时间吗?例如,因为夏令时?
调用 system_clock::now().time_since_epoch() 怎么样?还是保证总是越来越晚的时间点返回?即使没有保证,在实践中是否所有实现都以某种方式做到这一点(如果是,如何)?
最佳答案
std::chrono
提供 system_clock
和 steady_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/