WINAPI и время

WIN 32 API поддерживает пять форматов времени, и функции для получения времени и преобразования форматов с учетом часовых поясов. Вот эти типы.

System	SYSTEMTIME  		Года, месяц, день, час, секунда, и миллисекунды,
взятые с внутренних аппаратных часов.

File FILETIME 100-наносекунд интервалов 1 Января, 1601.
Local SYSTEMTIME ИЛИ FILETIME Системное время или файловое время преобразованное
в локальное время с учетом часовых поясов.

MS-DOS WORD Упакованное 16-битовое слово для даты другое для времени.
Windows DWORD Количество миллисекунд с тех пор как загруженная система;
повторяется каждые 49.7 дней.

Как видите у нас время храниться в WORD, DWROD и еще есть две струтуры. Структура SYSTEMTIME хранит дату и время используя отдельные поля для месяца, дня, года, дня недели, часа, минут, секунд и миллисекунд.

typedef struct _SYSTEMTIME 
{
WORD wYear; // Указывает текущий год
WORD wMonth; // Текущий месяц; Январь = 1, Февраль = 2, и так далее
WORD wDayOfWeek; // Текущий день недели; Воскресенье = 0, Понедельник = 1, и так далее.
WORD wDay; // Текущий день месяца.
WORD wHour; // Час.
WORD wMinute; // Минуты.
WORD wSecond; // Секунды.
WORD wMilliseconds; // Миллисекунды.
} SYSTEMTIME;

Структура FILETIME - это 64-х разрядное значение, представляющее число сто-наносекундных интервалов, прошедших с первого Января 1601 года:

typedef struct _FILETIME 
{
DWORD dwLowDateTime; // Младшие 32 бита времени файла
DWORD dwHighDateTime; // Старшие 32 бита времени файла
} FILETIME;