C++ chrono 系统时间(以毫秒为单位)、时间操作

发布于 2024-12-29 22:49:53 字数 394 浏览 0 评论 0原文

我遇到了一个由于 C++11 文档不足而导致的小问题。

我想获得自纪元以来的时间(以毫秒、纳秒或秒为单位),然后我必须将该值“转换”为另一个分辨率。 我可以使用 gettimeofday() 来做到这一点,但这会很容易,所以我尝试使用 std::chrono 来实现它。

我尝试过:

std::chrono::time_point<std::chrono::system_clock> now = 
    std::chrono::system_clock::now();

但我不知道以这种方式获得的 time_point 的分辨率是什么,而且我不知道如何将这个时间作为简单的 unsigned long long 获得,并且我不知道如何将其转换为另一个解决。

I've got a small problem caused by insufficient documentation of C++11.

I'd like to obtain a time since epoch in milliseconds, or nanoseconds or seconds and then I will have to "cast" this value to another resolution.
I can do it using gettimeofday() but it will be to easy, so I tried to achieve it using std::chrono.

I tried:

std::chrono::time_point<std::chrono::system_clock> now = 
    std::chrono::system_clock::now();

But I have no idea what is a resolution of obtained in this way time_point, and I don't know how to get this time as a simple unsigned long long, and I haven't any conception how to cast it to another resolution.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浅唱ヾ落雨殇 2025-01-05 22:49:53

您可以执行 now.time_since_epoch() 来获取表示自纪元以来的时间的持续时间,以及时钟分辨率。要转换为毫秒,请使用 duration_cast

auto duration = now.time_since_epoch();
auto millis = std::chrono::duration_cast<std::chrono::milliseconds>(duration).count();

You can do now.time_since_epoch() to get a duration representing the time since the epoch, with the clock's resolution. To convert to milliseconds use duration_cast:

auto duration = now.time_since_epoch();
auto millis = std::chrono::duration_cast<std::chrono::milliseconds>(duration).count();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文