Declare Function FileTimeToLocalFileTime Lib "kernel32" (lpFileTime As FILETIME, _ lpLocalFileTime As FILETIME) As Long
FileTimeToLocalFileTime конвертирует время из UTC (время по Гринвичу) в местное время (используется текущая временная зона, установленная на компьютере). Время хранится в формате структуры FILETIME
' Определяем дату создания файла 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)