Файловое время и летнее время


Вы должны позаботиться об использовании файлового времени, если пользователь заставил систему автоматически переключаться на летнее время.

Чтобы преобразовать файловое время в местное, используйте функцию FileTimeToLocalFileTime. Однако, FileTimeToLocalFileTime использует текущие параметры настройки для часового пояса и летнего времени. Поэтому, если это будет летнее время, то принимается во внимание летнее время, даже тогда, когда файловое время, которое Вы преобразуете, находится в стандартном времени.

Система FAT делает запись времени на диске в формате местного времени. Функция GetFileTime извлекает кэшированное универсальное глобальное время (UTC) из FAT. Когда время становится летним, то время, найденное GetFileTime должно начинаться с часа, потому что кэш не был обновлен. Когда Вы перезапускаете компьютер, кэшированное время, извлеченное GetFileTime, должно быть правильным. FindFirstFile извлекает местное время от FAT и преобразует его в универсальное глобальное время (UTC), используя текущие параметры настройки для часового пояса и летнего времени. Поэтому, если это будет летнее время, то FindFirstFile примет во внимание летнее время, даже тогда, когда файловое время, которое Вы преобразуете, находится в стандартном времени.

Система NTFS делает запись времени на диске в формате универсального глобального времени (UTC). Чтобы принять во внимание летнее время, при преобразовании файлового времени в местное, используйте нижеследующие функции вместо FileTimeToLocalFileTime:

  1. FileTimeToSystemTime
  2. SystemTimeToTzSpecificLocalTime
  3. SystemTimeToFileTime

 

Назад в оглавление
На главную страницу
Переведено 26.12.2009 19:53 ©Copyright V. Sokovikov
Hosted by uCoz