gpt4 book ai didi

c++ - 如何从 std::tm 转换为 Windows::Foundation::DateTime

转载 作者:行者123 更新时间:2023-11-30 03:47:05 24 4
gpt4 key购买 nike

我正在尝试将 Windows 运行时组件中的 std::tm 转换为 Windows::Foundation::DateTime

Windows::Foundation::DateTime 中唯一的属性是 UniversalTime,它定义为:

A 64-bit signed integer represents a point in time as the number of 100-nanosecond interval prior to or after midnight on January 1, 1601 (according to Gregorian Calendar)

有没有办法在 std 中获取这个值?还是有一种标准的方法来进行转换?

最佳答案

您可以使用mktime 将您的时间转换为 unix,然后添加魔数(Magic Number) 116444736000000000ULL:

    /* shift is difference between 1970-Jan-01 & 1601-Jan-01
* in 100-nanosecond intervals */
const uint64_t shift = 116444736000000000ULL; // (27111902 << 32) + 3577643008

来自 boost/date_time/filetime_functions.hpp

关于c++ - 如何从 std::tm 转换为 Windows::Foundation::DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33815816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com