Функция FileTimeToLocalFileTime

Declare Function FileTimeToLocalFileTime Lib "kernel32" (lpFileTime As FILETIME, _
    lpLocalFileTime As FILETIME) As Long

FileTimeToLocalFileTime конвертирует время из UTC (время по Гринвичу) в местное время (используется текущая временная зона, установленная на компьютере). Время хранится в формате структуры FILETIME

lpFileTime
Время по Гринвичу
lpLocalFileTime
Получаемое местное время

Пример

' Определяем дату создания файла C:\autoexec.bat
Dim hFile As Long  ' дескриптор открытого файла
Dim ctime As FILETIME  ' дата создания файла
Dim atime As FILETIME  ' дата последнего обращения
Dim mtime As FILETIME  ' дата последней модификации
Dim thetime As SYSTEMTIME ' для манипуляций с датами
Dim retval As Long ' возвращаемое значение

' Сначала откроем файл C:\autoexec.bat
' в режиме только для чтения
hFile = CreateFile("C:\autoexec.bat", GENERIC_READ, FILE_SHARE_READ, ByVal CLng(0), OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, 0)
If hFile = -1 Then
  Debug.Print "Не могу открыть указанный файл"
  End
End If

' Затем получаем интересующие даты
retval = GetFileTime(hFile, ctime, atime, mtime)
' Переводим дату создания в системное локальное время
retval = FileTimeToLocalFileTime(ctime, ctime)
' конвертируем формат FILETIME в формат SYSTEMTIME
retval = FileTimeToSystemTime(ctime, thetime)
' Выводим результат
Debug.Print "Файл создан "; thetime.wMonth; "-"; thetime.wDay; "-"; thetime.wYear
' Закрываем файл
retval = CloseHandle(hFile)

Смотри также

LocalFileTimeToFileTime

Категория

Время