WIN 32 API поддерживает пять форматов времени, и функции для получения времени и преобразования форматов с учетом часовых поясов. Вот эти типы.
SystemSYSTEMTIME Года, месяц, день, час, секунда, и миллисекунды,
взятые с внутренних аппаратных часов.
FileFILETIME100-наносекунд интервалов 1 Января, 1601.
LocalSYSTEMTIME ИЛИ FILETIMEСистемное время или файловое время преобразованное
в локальное время с учетом часовых поясов.
MS-DOSWORDУпакованное 16-битовое слово для даты другое для времени.
WindowsDWORD Количество миллисекунд с тех пор как загруженная система;
повторяется каждые 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;