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


当前回答

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

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

import time

ms = time.time_ns() // 1_000_000

其他回答

如果您使用我的代码(如下所示),时间将以秒为单位出现,然后在小数之后是毫秒。我认为Windows和Unix之间是有区别的——如果有,请评论。

from time import time

x = time()
print(x)

我的结果(在Windows上)是:

1576095264.2682993

编辑:没有区别:)谢谢tc0nn

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

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

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

只是示例代码:

import time
timestamp = int(time.time()*1000.0)

输出: 1534343781311

Time.time()可能只给出秒的分辨率,毫秒的首选方法是datetime。

from datetime import datetime
dt = datetime.now()
dt.microsecond

如果你想在你的代码中使用一个简单的方法,用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