如何在Python中获得以毫秒为单位的当前时间?


当前回答

unix诞生的时间

from time import time
while True:
    print(str(time()*1000)+'ms       \r', end='')

程序开始的时间

from time import time
init = time()
while True:
    print(str((time()-init)*1000)+'ms         \r', end='')

谢谢你的宝贵时间

其他回答

如果你想在你的代码中使用一个简单的方法,用datetime返回毫秒:

from datetime import datetime
from datetime import timedelta

start_time = datetime.now()

# returns the elapsed milliseconds since the start of the program
def millis():
   dt = datetime.now() - start_time
   ms = (dt.days * 24 * 60 * 60 + dt.seconds) * 1000 + dt.microseconds / 1000.0
   return ms

如果你关心测量流逝的时间,你应该使用单调时钟(python 3)。例如,如果一个NTP查询调整了你的系统时间,这个时钟不会受到系统时钟更新的影响。

>>> import time
>>> millis = round(time.monotonic() * 1000)

它提供了一个以秒为单位的参考时间,可用于以后比较以测量经过的时间。

这些以毫秒为单位的1000的乘法对于解决或使某些先决条件可以接受可能是不错的。它可以用来填补数据库中从未真正使用过它的空白。不过,在需要精确计时的真实情况下,它最终会失败。我不建议任何人将这种方法用于需要在特定时间进行操作或处理的关键任务操作。

例如: 往返ping在美国是30-80毫秒…你不能简单地把它加起来并有效地使用它。

我自己的例子要求每秒钟都有任务,这意味着如果我在第一个任务响应后进行四舍五入,我仍然会导致处理时间乘以每个主循环周期。结果是每60秒调用一次函数。一天大约1440英镑。不太准确。

只是一个想法,让人们寻找更准确的推理,而不是解决从未真正使用过的数据库差距。

对于Python 3.7+, time.time_ns()给出自epoch以来以纳秒为单位经过的时间。

这给出了以毫秒为单位的整数时间:

import time

ms = time.time_ns() // 1_000_000

unix诞生的时间

from time import time
while True:
    print(str(time()*1000)+'ms       \r', end='')

程序开始的时间

from time import time
init = time()
while True:
    print(str((time()-init)*1000)+'ms         \r', end='')

谢谢你的宝贵时间