Konvertera ett time_t-värde till en FILETIME
Tidsfunktionerna som ingår i C-körtiden använder time_t-typen för att representera antalet sekunder som förflutit sedan midnatt den 1 januari 1970. I följande exempel konverteras ett time_t-värde till en FILETIME-.
#include <windows.h>
#include <time.h>
void TimetToFileTime(time_t t, LPFILETIME pft)
{
ULARGE_INTEGER time_value;
time_value.QuadPart = (t * 10000000LL) + 116444736000000000LL;
pft->dwLowDateTime = time_value.LowPart;
pft->dwHighDateTime = time_value.HighPart;
}
När du har fått en FILETIME-kan du konvertera värdet till systemtid med hjälp av funktionen FileTimeToSystemTime.
Exempel på äldre kod
Kodexemplet i föregående avsnitt är bra för alla arkitekturer. Men om du skapar för en 32-bitarsarkitektur och definierar _USE_32BIT_TIME_Tär time_t ett 32-bitarsvärde. I så fall kan du använda följande kodexempel i stället.
#include <windows.h>
#include <time.h>
void TimetToFileTime(time_t t, LPFILETIME pft)
{
LONGLONG time_value = Int32x32To64(t, 10000000) + 116444736000000000;
pft->dwLowDateTime = (DWORD) time_value;
pft->dwHighDateTime = time_value >> 32;
}