ltime
和htime
是 64 位时间值的一部分,其中一个是较低的,另一个是较高的 32 位值。
两种最常用的 64 位时间格式是 64 位版本的 Unix ( POSIX ) 时间和 Windows FILETIME(仅限 64 位)。
- POSIX时间是自 1970 年 1 月 1 日以来 UTC 的秒数。
- Windows FILETIME是自 UTC 时间 1601 年 1 月 1 日以来的纳秒数。
同时使用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 年)。