Microsoft предлагает следующую функцию в своем статья поддержки :
// NOTE: this function is INCORRECT! void UnixTimeToFileTime(time_t t, LPFILETIME pft) { // Note that LONGLONG is a 64-bit value LONGLONG ll; ll = Int32x32To64(t, 10000000) + 116444736000000000; pft->dwLowDateTime = (DWORD)ll; pft->dwHighDateTime = ll >> 32; }
Однако, если время Unix «t» относится к датам после 2038 года, эта функция выдает неверный результат. Как заставить его нормально работать после 2038 года?