我在以毫秒为单位获取实际系统时间时遇到问题。我发现的唯一一种好方法是 Windows.h
,但我不能使用它。我应该使用 std::chrono
。我怎样才能做到这一点?
我花了很多时间试图用谷歌搜索它,但我只找到了第二精度的例子。
我试图得到这样的字符串:
[2014-11-25 22:15:38:449]
原文由 ziggy 发布,翻译遵循 CC BY-SA 4.0 许可协议
std::chrono
为您提供表示时间点或两个时间点之间经过的持续时间的实用程序。它允许您获取有关这些时间间隔的信息。
它 不 提供任何 日历 信息。不幸的是,目前 C++ 标准中没有这些工具。 boost::date_time
在这里可能会有所帮助。
原文由 Jay Miller 发布,翻译遵循 CC BY-SA 3.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
使用 此答案 中的代码:
要记住的一件事是,计时器返回亚毫秒面额的值这一事实并不一定表明计时器具有亚毫秒分辨率。我认为 Windows 在 VS2015 中的实现可能最终会得到修复,但是到目前为止他们用来支持他们的 chrono 实现的计时器对操作系统
timeBeginPeriod()
设置很敏感,显示不同的分辨率和默认设置我认为是 16 毫秒。上面的代码还假设 UTC 和您的本地时区都没有从
std::chrono::system_clock
的纪元偏移一个小数秒值。使用霍华德的日期函数来避免 ctime 的示例:http: //coliru.stacked-crooked.com/a/98db840b238d3ce7