2017-05-10 13 views
0

現在時刻の.csvファイルのタイムスタンプをミリ秒単位で出力する必要があります。今私が持っている: 「2017年5月9日10:13:F 33%、」これは明らかに正しくない ミリ秒精度の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)) 

は、この方法は、次の形式でタイムスタンプが出力されますそれをやって。 Iveはその時を聞いた。時間はちょうど1秒ほど正確であるが、マイクロ秒をサポートできると聞いたこともある。誰かが私のためにこれをクリアするか、必要な形式でタイムスタンプを取得するためにこのコードをフォーマットする正しい方法を私に教えてもらえますか? (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] Pythonの2.xおよび3.xの両方において、the docsによれば、時間は常にフローティングとして返されていても

注全てのシステムが1秒より良い精度で時間を提供するわけではありません。この関数は通常、非減少値を返しますが、2つの呼び出しの間にシステムクロックが設定されていれば、以前の呼び出しより低い値を返すことができます。

関連する問題