首页 > 解决方案 > 如何获取UTC的当前时间?

问题描述

我正在尝试在 UWP 应用程序中获取 UTC 的当前时间。这应该是构造一个DateTime对象的简单问题

DateTime const now{ clock::now() };

并访问其UniversalTime字段。但是,该字段似乎并未投影到 C++/WinRT 中。

如何使用 C++/WinRT 获取 UTC 的当前时间?

标签: windows-runtimec++-winrt

解决方案


看起来像一个文档错误。该字段在 C++/WinRT 中不存在。相反,DateTime投影为std::chrono::time_point但与 C++/CX 类似,结构(不是字段)的文档仍然有些准确 - 它与FILETIME具有相同的粒度。但比自己提取值更容易,winrt::clock提供静态方法to_file_time并分别to_time_t转换DateTime为 FILETIME 或time_t

我将修复文档,并且我一直打算写一篇关于 C++/WinRT 如何与 std::chrono 无缝互操作以进行计时的博客文章。我是 std::chrono 的粉丝,将它整合到 C++/WinRT 是我的想法,所以讨厌的人知道该怪谁。:)


推荐阅读