我使用python將datetime轉換爲filetime的任何鏈接?日期時間到文件時間(Python)
實施例:2011年4月13日07:21:01.0874(UTC)FILETIME = [57D8C920:01CBF9AB]
得到了電子郵件報頭中的上方。
我使用python將datetime轉換爲filetime的任何鏈接?日期時間到文件時間(Python)
實施例:2011年4月13日07:21:01.0874(UTC)FILETIME = [57D8C920:01CBF9AB]
得到了電子郵件報頭中的上方。
我發現這個鏈接,這似乎說明你在找什麼:http://reliablybroken.com/b/2009/09/working-with-active-directory-filetime-values-in-python/
謝謝。我正在看它。希望這可以幫助。這真的會殺死我的腦細胞 – jeremy
我在重複的問題答案刪除了,所以我會在這裏發佈:
衝浪左右,我發現這個鏈接:http://cboard.cprogramming.com/windows-programming/85330-hex-time-filetime.html
之後,一切都變得簡單:
>>> ft = "57D8C920:01CBF9AB"
... # switch parts
... h2, h1 = [int(h, base=16) for h in ft.split(':')]
... # rebuild
... ft_dec = struct.unpack('>Q', struct.pack('>LL', h1, h2))[0]
... ft_dec
... 129471528618740000L
... # use function from iceaway's comment
... print filetime_to_dt(ft_dec)
2011-04-13 07:21:01
調音起來爲你準備好了。
那麼這裏就是解決方案,我結束了對大衛巴克斯頓「filetimes.py」 ^ - 注意的是那裏有在小時
好吧,我改變了兩兩件事相差
parm3=0x57D8C920; parm3=0x01CBF9AB
#Int32x32To64
ft_dec = struct.unpack('>Q', struct.pack('>LL', parm4, parm3))[0]
from datetime import datetime
EPOCH_AS_FILETIME = 116444736000000000; HUNDREDS_OF_NANOSECONDS = 10000000
dt = datetime.fromtimestamp((ft_dec - EPOCH_AS_FILETIME)/HUNDREDS_OF_NANOSECONDS)
print dt
Output will be:
2011-04-13 09:21:01 (GMT +1)
13 Apr 2011 07:21:01.0874 (UTC)
基地:
...和參數的傳遞要注意的是struct.pack(「>LL」是無符號的訂單旁邊32位廉政局的!
如果你已經有符號整數的只是將其更改爲struct.pack(「>LL」爲簽署 32位廉政局的!
(或點擊上面的struct.pack鏈接獲取更多信息)
@Tshepang:請不要從正確使用它的問題中刪除[tag:filetime]。 –
@BenVoigt我認爲這不是很重要,因爲它的使用率低,沒有訂戶。原諒我。 – Tshepang