如何从C ++ / WinRT DateTime创建hstring?

时间:2019-04-23 18:17:07

标签: c++-winrt

我想知道转换的最简单方法是什么 Windows::Foundation::DateTime dt = winrt::clock::now();变成字符串?

2 个答案:

答案 0 :(得分:0)

本身没有“转换”。我怀疑您要寻找的是某种日期/时间格式化实用程序。

C ++ 20将在此领域带来大大改进的支持,但目前还没有。

可移植但功能较差的方法是将其转换为time_t并使用C库。 https://en.cppreference.com/w/cpp/chrono/c

在WinRT中执行此操作的功能齐全的方法是在此处https://docs.microsoft.com/en-us/uwp/api/windows.globalization.datetimeformatting使用日期格式设置实用程序

答案 1 :(得分:0)

这不漂亮,但是您可以这样做:

winrt::Windows::Foundation::DateTime dt = winrt::clock::now();
std::time_t t = dt.time_since_epoch().count();

std::wstringstream wss;
wss << std::put_time(std::localtime(&t), L"%m/%d/%Y %H:%M:%S");
winrt::hstring hs{ wss.str() };