2012-06-15 3 views
1

Просто хочу убедиться, что-то одно.
В Windows-машине (либо на настольной системе, либо на устройстве, таком как Windows Phone), если пользователь меняет время отображения (возможно, отрегулирует часовой пояс или просто изменит дату/время на панели управления), это также изменит SYSTEMTIME или FILETIME , Что изменится, если пользователь изменит время отображения?Время системы, местное время, время файла и нормальное время

Спасибо

+1

Пожалуйста, будьте более конкретными. SYSTEMTIME и FILETIME - структуры данных. То, что вы не указали, - это то, как вы заполняете эти структуры данных. –

ответ

4

Прежде всего, SYSTEMTIME и FILETIME - это всего лишь структуры данных. Они не «меняются» каким-либо значимым образом.

Есть две функции, которые возвращают SYSTEMTIME: GetSystemTime() и GetLocalTime(). Первый возвращает время UTC (примерно в Гринвиче, Англия), второе возвращает время в локальном часовом поясе. Если вы просто измените часовой пояс, результат GetLocalTime() изменится, но в GetSystemTime() не будет. Если вы измените время, но не часовой пояс, оба будут меняться.

В весьма надуманный пример, когда вы меняете как часовой пояс и текущее время точно, чтобы компенсировать разницу часового пояса, значение GetLocalTime() останется, но GetSystemTime) изменится (.

И это обесценивает тот факт, что выход любой из функций имеет тенденцию меняться с каждой миллисекундой. Под «изменением» в параграфах выше я подразумеваю «отбрасывание обычного времени».

Есть одна функция, которая возвращает FILETIME: GetSystemTimeAsFileTime(). Его вывод, естественно, является результатом GetSystemTime().

0

Насколько я знаю, если вы специально не проверить что-то другое, «отображение времени» всегда то, что система возвращается на рабочем столе. Это может быть разным в мобильных средах, поскольку время гораздо важнее, и у них есть более стабильные средства проверки.

Смежные вопросы