Python时间戳,精度为毫秒

时间:2017-05-10 20:37:38

标签: python

我需要输出当前时间的.csv文件的时间戳,以毫秒为单位。现在我有:

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-05-09 10:13:33%f”这显然是不正确的。我听说过time.time只是精确到秒,但也听说它可以支持微秒。有人可以为我清楚这一点,或者告诉我格式化这段代码以获得所需格式的时间戳的正确方法吗? (2017-05-09 10:13:33.100)例如

2 个答案:

答案 0 :(得分:1)

快速解决方案是:

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

答案 1 :(得分: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]根据the docs

,在python 2.x和3.x中都有
  

请注意,即使时间始终作为浮点数返回,但并非所有系统都提供的精度高于1秒。虽然此函数通常返回非递减值,但如果在两次调用之间设置了系统时钟,则它可以返回比先前调用更低的值。