我试图从一个十六进制序列中提取时间戳的数据,我已经收窄,其中时间戳是隐藏确定时间戳数据
我发现两个日期由约是关闭的十六进制数据2分钟
(2012-12-01 06:00:55 -0700)
A4 01 1B FE 36 05 88 23 E4 40
(2012-12-01 06:02:56 -0700)
A4 01 EF F9 AF 10 88 23 E4 40
(2012-12-01 06:00:49 -0700)
A4 01 67 5B A5 04 88 23 E4 40
(2012-12-02 06:00:47 -0700)
A4 01 D6 CF 74 04 A8 23 E4 40
多个时间戳
A4 01 90 A1 B2 03 C8 2E E4 40
A4 01 22 2D E3 03 C8 2E E4 40
-0800
E0 01 FF 15 82 03 C8 2E E4 40
我敢肯定的基础上,我能够被日起取消其参赛资格一些其他的数据,它是使用littl e endian编码
但是,就我所能得到的这一点而言。我正在使用此网站http://fmdiff.com/fm/timestamp.html将知道的时间戳转换为一些常见的格式,但我只是没有看到它。
是否有任何其他格式(可能在.net中),我可以尝试此信息正在使用?
解决了,感谢@Markus
下面是转换(LE)六角
#include <Debug.au3>
#include <Date.au3>
_DebugSetup("Debug")
Func GetExcelTimestamp($dec)
$excel_time = Dec($dec,3)
$timeinms = ($excel_time-25569)*24*3600*1000
$sTime = _DateAdd("s", Int($timeinms/1000), "1970/01/01 00:00:00")
_DebugOut($dec & " - " & $sTime)
Return $sTime
EndFunc ;==>GetExcelTimeDate
GetExcelTimestamp("40E423880536FE1B")
GetExcelTimestamp("40E4238810AFF9EF")
GetExcelTimestamp("40E4238804A55B67")
GetExcelTimestamp("40E423A80474CFD6")
嗨丹尼尔,你有更多的示例日期,你可以发布?这样我们可以尝试做一个线性拟合,这可能会让你更清楚你在这里处理的是什么。不幸的是,从这两个数字,我什么也没有看到。他们应该相差大约121,000毫秒,但是我找不到那个数字的区别... – 2013-03-05 07:02:08
又添加了2个时间戳,我会尽量在不同的日子添加更多的时间戳。我也遇到过这篇文章:http://blogs.msdn.com/b/oldnewthing/archive/2003/09/05/54806.aspx,这是在谈论“如果它是一个以”01开头的64位值“和一封信,它可能是一个Win32 FILETIME。 “01A”时代始于1972年,我认为这些值应该以两个字节读取,其值相反,因此“A4 01”将是“01 A4”。还要注意日差(最后一项是12-02,显示为23A8而不是2388) – Daniel 2013-03-06 00:45:11