ltime
とhtime
は 64 ビットの時間値の一部であり、一方が下位の 32 ビット値で、もう一方が上位の 32 ビット値です。
最も一般的に使用される 2 つの 64 ビット時間形式は、64 ビット バージョンの Unix ( POSIX ) 時間と Windows FILETIME (64 ビットのみ) です。
- POSIX時間は、UTC で 1970 年 1 月 1 日からの秒数です。
- Windows FILETIMEは、UTC で 1601 年 1 月 1 日からのナノ秒数です。
と の両方ltime
を使用htime
して 64 ビット値を取得するには、まずそれぞれを 16 進数に変換する必要があります。
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
。そのため、 POSIX時間が現在の年 (2012 年)をはるかに超えるため、タイムスタンプにFILETIME形式が使用される可能性が高くなります。