typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME, *PFILETIME;
在低日期时间和高数据时间内存储了多长时间?以及它将如何存储在计算机中以及如何以64位整数显示。
例如,如果我有2012-06-18 09:45:03.180
。
我必须减去两个文件时间,所以我转换为int64并减去,这是正确的吗?
答案 0 :(得分:0)
该结构已有详细记录here。摘录:
FILETIME结构是一个64位值,表示数量 自1601年1月1日(UTC)以来的100纳秒间隔。
两个DWORDS用于定义结构,因为您不应该自己进行计算。请参阅引用的MSDN文章中的备注部分。
答案 1 :(得分:0)
答案 2 :(得分:0)
dwHighDateTime
和dwLowDateTime
形成一个64位值,表示自1601年1月1日UTC时间上午12:00以来100纳秒单位的数量。
您不应该直接在FILETIME结构中读取或写入值。您应该使用FileTimeToSystemTime之类的函数来访问其中的值。
答案 3 :(得分:0)
根据MSDN,FILETIME
是自1601年1月1日(UTC)以来100纳秒间隔的数量。因此,在您的示例中,大约需要150183天,9小时,45分钟,3秒和180,000,它们应该是:
修改转换为__int64
并按照您的说法减去效果正常。