像0x01D61304这样的日期编码如何转换成年月日【已解决】
本帖最后由 bfgxp 于 2020-5-28 15:01 编辑wim镜像导出的xml文件,记录的日期和时间就是这样的编码,该如何转换为年月日时分秒?
<CREATIONTIME>
<HIGHPART>0x01D61304</HIGHPART>
<LOWPART>0x0581EA62</LOWPART>
</CREATIONTIME>
<LASTMODIFICATIONTIME>
<HIGHPART>0x01D61304</HIGHPART>
<LOWPART>0x07DCCDBD</LOWPART>
</LASTMODIFICATIONTIME>
本帖最后由 繁星 于 2020-5-3 00:59 编辑
help里边现成的不知道对不对
Local $HIGHPART = '0x01D61304', _
$LOWPART1 = '0x0581EA62', _
$LOWPART2 = '0x07DCCDBD'
ConsoleWrite('CREATIONTIME:' & _FormatTime($HIGHPART, $LOWPART1) & _
@CRLF & 'LASTMODIFICATIONTIME:' & _FormatTime($HIGHPART, $LOWPART2) & @CRLF)
Func _FormatTime($HIGHPART, $LOWPART)
Local $tagFILETIME = DllStructCreate('struct; dword Lo;dword Hi; endstruct'), _
$tagSYSTEMTIME = DllStructCreate('struct; word Year;word Month;word Dow;word Day;word Hour;word Minute;word Second;word MSeconds; endstruct')
DllStructSetData($tagFILETIME, 'Hi', Dec(StringTrimLeft($HIGHPART, 2)))
DllStructSetData($tagFILETIME, 'Lo', Dec(StringTrimLeft($LOWPART, 2)))
DllCall('kernel32.dll', 'bool', 'FileTimeToSystemTime', 'struct*', $tagFILETIME, 'struct*', $tagSYSTEMTIME)
Return StringFormat("%04d/%02d/%02d %02d:%02d:%02d", _
DllStructGetData($tagSYSTEMTIME, "Year"), _
DllStructGetData($tagSYSTEMTIME, "Month"), _
DllStructGetData($tagSYSTEMTIME, "Day"), _
DllStructGetData($tagSYSTEMTIME, "Hour"), _
DllStructGetData($tagSYSTEMTIME, "Minute"), _
DllStructGetData($tagSYSTEMTIME, "Second"))
EndFunc
繁星 发表于 2020-5-2 23:14
不知道对不对
大神,请教一下,什么原理??
看的蒙蒙的。。。
:face (13): 自己找到了答案,高低位的16进制去0x用“&”连接,然后转换成10进制,得到的数是自1601年1月1日0时0分0秒以来所经历的100纳秒的倍数
处理方法就是
$iDec = int(Dec("01D613040581EA62", $NUMBER_AUTO)/10000000)
$sNewDate = _DateAdd( 's',$iDec, "1601/01/01 00:00:00")
MsgBox( 4096, "", "Date: " & $sNewDate )
$NUMBER_AUTO 是什么?看来还是二楼的正确 参考学习,参考学习 bfgxp 发表于 2020-5-3 07:27
自己找到了答案,高低位的16进制去0x用“&”连接,然后转换成10进制,得到的数是自1601年1月1日0时0分0秒以 ...
同样的疑问,为什么是“1601/01/01 00:00:00”?? yuantian 发表于 2020-5-3 17:44
同样的疑问,为什么是“1601/01/01 00:00:00”??
不知道,这是微软的说明
https://docs.microsoft.com/zh-cn/windows/win32/api/minwinbase/ns-minwinbase-filetime?redirectedfrom=MSDN bfgxp 发表于 2020-5-3 18:35
不知道,这是微软的说明
https://docs.microsoft.com/zh-cn/windows/win32/api/minwinbase/ns-minwinbas ...
好的,谢谢。
页:
[1]