问题:获取当前时间(以毫秒为单位)在Python中?
如何在Python中获取以毫秒为单位的当前时间?
回答 0
根据我上面的@samplebias的评论,这是我需要做的:
import time
millis = int(round(time.time() * 1000))
print millis
快点 谢谢大家,为您的大脑屁感到抱歉。
要重用:
import time
current_milli_time = lambda: int(round(time.time() * 1000))
然后:
>>> current_milli_time()
1378761833768
回答 1
time.time()
可能只提供秒的分辨率,毫秒的首选方法是datetime
。
from datetime import datetime
dt = datetime.now()
dt.microsecond
回答 2
def TimestampMillisec64():
return int((datetime.datetime.utcnow() - datetime.datetime(1970, 1, 1)).total_seconds() * 1000)
回答 3
回答 4
只是示例代码:
import time
timestamp = int(time.time()*1000.0)
输出:1534343781311
回答 5
另一个解决方案是可以嵌入到自己的utils.py中的函数
import time as time_ #make sure we don't override time
def millis():
return int(round(time_.time() * 1000))
回答 6
如果您想在代码中使用一个简单的方法来返回带有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
回答 7
我发现以毫秒为单位获取当前UTC时间的最简单方法是:
# timeutil.py
import datetime
def get_epochtime_ms():
return round(datetime.datetime.utcnow().timestamp() * 1000)
# sample.py
import timeutil
timeutil.get_epochtime_ms()
回答 8
如果您担心测量经过的时间,则应使用单调时钟(python 3)。该时钟不受系统时钟更新的影响,例如,您会看到NTP查询是否调整了系统时间。
>>> import time
>>> millis = round(time.monotonic() * 1000)
它提供了以秒为单位的参考时间,可用于以后进行比较以测量经过的时间。
回答 9
如果您使用我的代码(如下所示),则时间将以秒为单位,然后在十进制后为毫秒。我认为Windows和Unix之间有区别-如果有区别,请发表评论。
from time import time
x = time()
print(x)
我的结果(在Windows上)是:
1576095264.2682993
编辑:没有区别:)谢谢tc0nn
回答 10
这些乘以1000毫秒的乘法对于解决或使某些先决条件可接受可能是不错的选择。它可以用来填补数据库中实际上从未使用过的空白。虽然,对于需要精确定时的实际情况,它最终会失败。我不建议任何人将这种方法用于需要执行操作或在特定时间进行处理的关键任务操作。
例如:在美国,双向ping是30-80毫秒…您不能将其四舍五入并有效地使用它。
我自己的示例要求每秒执行一次任务,这意味着如果我在响应第一个任务后将其四舍五入,仍然会导致处理时间乘以每个主循环周期。最终每60秒调用一次函数。每天大约是1440 ..不太准确。
对于那些希望寻求更准确推理而不是解决从未真正使用过数据库缺口的人们来说,这只是一个想法。
回答 11
这是使用datetime
适用于Python 3 的模块的另一种解决方案。
datetime.datetime.timestamp(datetime.datetime.now())