这是来自 IE9 localStorage 文件的一些示例 XML:
<root>
<item name="1264474612:page_insights:latestversion"
value="6"
ltime="1024039440"
htime="30244985" />
</root>
我正在尝试弄清楚如何解释这些类型的记录,包括 ltime 和 htime 值。我从研究中发现它与 IE9 localStorage 有关并且来自 %userprofile%\AppData\Local\Microsoft\Internet Explorer\DOMStore\
。
感谢任何帮助。
最佳答案
ltime
和 htime
是 64 位时间值的一部分,其中一个较低,另一个是较高的 32 位值。
两种最常用的 64 位时间格式是 64 位版本的 Unix (POSIX) 时间和 Windows FILETIME(仅限 64 位)。
- POSIX 时间是自 1970 年 1 月 1 日以来的 UTC 秒数。
- Windows FILETIME 是自 1601 年 1 月 1 日以来的纳秒数(UTC)。
同时使用ltime
和htime
,要得到64位的值,都必须先转换为十六进制。
ltime = 1024039440 (decimal) = 0x3d099a10 (hexadecimal)
htime = 30244985 (decimal) = 0x01cd8079 (hexadecimal)
value = (htime x 0x100000000) + ltime
= (0x01cd8079 x 0x100000000) + 0x3d099a10
= 0x01cd807900000000 + 0x3d099a10
= 0x01cd80793d099a10 (hexadecimal)
= 129901222467050000 (decimal)
如果上面的结果是使用FILETIME和POSIX格式计算的,FILETIME时间就是2012-08-22, 08:17:26.705
,而 POSIX 时间将是 4116407840-06-22, 09:53:20
。因此,FILETIME 格式更有可能用于时间戳,因为 POSIX 时间将远远超过当年(2012 年)。
关于internet-explorer-9 - 解读 IE9 ltime & htime localStorage 时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12981540/