Microsoft 在其支持文章中提供了以下功能:
// 注意:这个函数是不正确的! void UnixTimeToFileTime(time_t t, LPFILETIME pft) { // 注意 LONGLONG 是一个 64 位的值 龙龙ll; ll = Int32x32To64(t, 10000000) + 116444736000000000; pft->dwLowDateTime = (DWORD)ll; pft->dwHighDateTime = ll >> 32; }
但是,如果 Unix 时间“t”指的是 2038 年之后的日期,则此函数会产生不正确的结果。2038年后如何让它正常工作?