2011-12-29 40 views

回答

7

您可以將POSIX時間戳轉換爲datetime

>>> tstamp = 1325178061 # right about now 
>>> from datetime import datetime 
>>> datetime.fromtimestamp(tstamp) 
datetime.datetime(2011, 12, 29, 18, 1, 1) 

fromtimestamp命名的構造函數接受所有平臺上的POSIX時間戳(!)。

轉換到Windows時間戳將減去Windows的時代,這是Wikipedia says 1601年1月1,並轉換所產生的timedelta的秒數的問題:

>>> W_EPOCH = datetime(1601, 1, 1) 
>>> (datetime.fromtimestamp(tstamp) - W_EPOCH).total_seconds() 
12969655261.0 

現在你已經有了一個float,您轉換爲int並以任何喜歡的方式存儲爲64位數量。

+0

它只是讓有趣的,如果我們轉換到比在Win32 FILETIME格式以外的東西(但我同意這是幾乎可以肯定這就是OP想要的東西),因爲MS是相當..創造性與timeformats。 [見這裏](http://blogs.msdn.com/b/oldnewthing/archive/2003/09/05/54806.aspx)列表。只希望你永遠不會有OLE次工作啊 – Voo 2011-12-29 17:44:24

+0

這是件好事,但一兩件事,這是我在2.6.5,並沒有total_seconds叫.... – user1040625 2011-12-29 17:48:35

+0

此外,VOO,我確實使用FILETIME格式...只是爲了確認,我需要將這些秒轉換爲10^-7秒,對吧? – user1040625 2011-12-29 18:03:05

相關問題