Я провел исследование MSDN и этого сайта, посвященное моему вопросу, но мне не удалось найти конкретное, не взломанное решение.
Я хотел бы иметь возможность создавать конкретные структуры UTC FILETIME в C ++. У пользователя есть возможность указать дату (ГГГГ / ММ / ДД), и тогда я бы хотел, чтобы время этой даты было 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);
Проблема, с которой я сталкиваюсь, заключается в том, что информация о местном часовом поясе используется на моем компьютере для создания ФИЛЬТРАЦИИ, отличной от указанного ГГГГ / ММ / ДД 00:00. Цель состоит в том, чтобы иметь структуру FILETIME, которая содержит эту информацию, чтобы она не зависела от часового пояса.
Я рассмотрел использование GetTimeZoneInformation (), чтобы найти смещение UTC и выполнить математические вычисления, чтобы варьировать st.wHour, st.wMinute и st.wSecond, но не был уверен, что существует лучшее решение для простого создания определенного экземпляра FILETIME. ,
РЕДАКТИРОВАТЬ:
Результирующий вывод, который я ищу, представляет собой структуру FILETIME с заданными myYear, myMonth и myDay и «жестко закодированным» временем 00:00 (UTC).
Задача ещё не решена.