我需要输出当前时间的.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)例如
答案 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秒。虽然此函数通常返回非递减值,但如果在两次调用之间设置了系统时钟,则它可以返回比先前调用更低的值。