我已经在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实例。
编辑:
我寻求的结果输出是具有给定myYear,myMonth和myDay的FILETIME结构,以及00:00(UTC)的“硬编码”时间。