2017-05-10 174 views
0

我需要輸出當前時間的.csv文件的時間戳(以毫秒爲單位)。現在,我有:精度爲毫秒的Python時間戳

localTime = time.localtime(time.time()) 
now = time.localtime(time.time()) 
currTime = time.time() 
now = time.strftime("\"%Y-%m-%d %H:%M:%S.%f\"", time.localtime(currTime)) 

做這種方式將輸出以下格式的時間戳: 「2017年5月9日10:13:33%F」這顯然是不正確的。我聽說那個時間只是精確到一秒鐘,但也聽說它可以支持微秒。有人可以爲我解決這個問題,或者讓我看看格式化這些代碼以獲得所需格式的時間戳的正確方法嗎? (2017年5月9日10:13:33.100)例如

+0

你想讓它看起來像什麼? –

+0

這樣的事情:2017-05-09 10:13:33.100 – Travis

回答

1

一個快速的解決辦法是:

t=time.time() 
millis = int((t - int(t))*1000) 
0

正如你所說,問題是time並不一定給你想要的精確度[1]。 datetime將是一個更好的選擇:

from datetime import datetime 

now = datetime.utcnow() # or datetime.now(your_timezone) 
formatted = now.strftime("%Y-%m-%d %H:%M:%S.%f") 
print(formatted) 

[1]無論是在蟒蛇2.x和3.x,根據the docs

注意,即使時間總是返回浮動點數,並非所有的系統都能提供比1秒更好的精確時間。雖然此函數通常返回非遞減值,但如果系統時鐘已在兩次調用之間回退,則它可以返回比先前調用更低的值。