2

我已经对 MSDN 和这个网站进行了与我的问题相关的研究,但未能找到一个特定的、非 hacky 的解决方案。

我希望能够在 C++ 中创建特定的 UTC FILETIME 结构。用户可以指定日期(YYYY/MM/DD),然后我希望该日期的时间为 00:00。到目前为止,这就是我所拥有的:

FILETIME ft;
SYSTEMTIME st;

st.wYear = myYear;
st.wMonth = myMonth;
st.wDay = myDay;
st.wHour = 0;
st.wMinute = 0;
st.wSecond = 0;
st.wMilliseconds = 0;

SystemTimeToFileTime(&st, &ft);

我遇到的问题是我的机器上使用本地时区信息来生成与指定的 YYYY/MM/DD 00:00 不同的 FILETIME。目标是拥有一个包含此信息的 FILETIME 结构,以便它不依赖于时区。

我考虑过使用 GetTimeZoneInformation() 来查找 UTC 偏移量并执行数学计算以改变 st.wHour、st.wMinute 和 st.wSecond,但不确定是否有更好的解决方案来简单地创建特定的 FILETIME 实例.

编辑:

我寻求的结果输出是 FILETIME 结构,具有给定的 myYear、myMonth 和 myDay,以及 00:00 (UTC) 的“硬编码”时间。

4

0 回答 0