【发布时间】:2018-02-22 10:02:41
【问题描述】:
我有一个以秒为单位的时间(例如:1505306792)。
如何将其转换为 FILETIME?
这是我尝试过的代码
INT64 timer64 = 1505306792;
timer64 = timer64 *1000 *10000;
ULONGLONG xx = timer64;
FILETIME fileTime;
ULARGE_INTEGER uliTime;
uliTime.QuadPart = xx;
fileTime.dwHighDateTime = uliTime.HighPart;
fileTime.dwLowDateTime = uliTime.LowPart;
这个结果 FILETIME 是 1648-09-13 15:34:00
我预计这个日期是 2017-09-13 12:46:31 。使用在线转换器时,我也遇到了同样的情况。
知道如何解决这个问题吗?
我已经看到一些使用 boost 的答案,但它在我的项目中可用。
【问题讨论】:
-
一毫秒 = 1/1000 秒。为什么要乘以千万?
-
我查找的第一个文件时间转换器 (silisoftware.com/tools/…),当您使用其默认设置并输入 1505306792 时,您会得到 2017 年 9 月 13 日星期三下午 12:46:32 的输出。基于其默认值,我认为您需要关注输入格式为 unix。