如何在Python中获得以毫秒为单位的当前时间?
当前回答
def TimestampMillisec64():
return int((datetime.datetime.utcnow() - datetime.datetime(1970, 1, 1)).total_seconds() * 1000)
其他回答
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='')
谢谢你的宝贵时间
更新:感谢@neuralmer。
最有效的方法之一:
(time.time_ns() + 500000) // 1000000 #rounding last digit (1ms digit)
or
time.time_ns() // 1000000 #flooring last digit (1ms digit)
在其他方法中,这两种方法都非常有效。
基准:
你可以在我自己的机器上看到一些不同方法的基准测试结果:
import time
t = time.perf_counter_ns()
for i in range(1000):
o = time.time_ns() // 1000000 #each 200 ns
t2 = time.perf_counter_ns()
print((t2 - t)//1000)
t = time.perf_counter_ns()
for i in range(1000):
o = (time.time_ns() + 500000) // 1000000 #each 227 ns
t2 = time.perf_counter_ns()
print((t2 - t)//1000)
t = time.perf_counter_ns()
for i in range(1000):
o = round(time.time_ns() / 1000000) #each 456 ns
t2 = time.perf_counter_ns()
print((t2 - t)//1000)
t = time.perf_counter_ns()
for i in range(1000):
o = int(time.time_ns() / 1000000) #each 467 ns
t2 = time.perf_counter_ns()
print((t2 - t)//1000)
t = time.perf_counter_ns()
for i in range(1000):
o = int(time.time()* 1000) #each 319 ns
t2 = time.perf_counter_ns()
print((t2 - t)//1000)
t = time.perf_counter_ns()
for i in range(1000):
o = round(time.time()* 1000) #each 342 ns
t2 = time.perf_counter_ns()
print((t2 - t)//1000)```
如果您使用我的代码(如下所示),时间将以秒为单位出现,然后在小数之后是毫秒。我认为Windows和Unix之间是有区别的——如果有,请评论。
from time import time
x = time()
print(x)
我的结果(在Windows上)是:
1576095264.2682993
编辑:没有区别:)谢谢tc0nn
这些以毫秒为单位的1000的乘法对于解决或使某些先决条件可以接受可能是不错的。它可以用来填补数据库中从未真正使用过它的空白。不过,在需要精确计时的真实情况下,它最终会失败。我不建议任何人将这种方法用于需要在特定时间进行操作或处理的关键任务操作。
例如: 往返ping在美国是30-80毫秒…你不能简单地把它加起来并有效地使用它。
我自己的例子要求每秒钟都有任务,这意味着如果我在第一个任务响应后进行四舍五入,我仍然会导致处理时间乘以每个主循环周期。结果是每60秒调用一次函数。一天大约1440英镑。不太准确。
只是一个想法,让人们寻找更准确的推理,而不是解决从未真正使用过的数据库差距。
另一个解决方案是可以嵌入到您自己的utils.py中的函数
import time as time_ #make sure we don't override time
def millis():
return int(round(time_.time() * 1000))
推荐文章
- ValueError: numpy。Ndarray大小改变,可能表示二进制不兼容。期望从C头得到88,从PyObject得到80
- Anaconda /conda -安装特定的软件包版本
- 我在哪里调用Keras的BatchNormalization函数?
- 打印测试执行时间并使用py.test锁定缓慢的测试
- 如何解析unix时间戳到时间。时间
- 插入一行到熊猫数据框架
- 要列出Pandas DataFrame列
- 如何使用yyyyMMddHHmmss格式格式化当前时间?
- 在Django模型中存储电话号码的最佳方法是什么?
- 从导入的模块中模拟函数
- SQL Developer只返回日期,而不是时间。我怎么解决这个问题?
- 滚动或滑动窗口迭代器?
- python的方法找到最大值和它的索引在一个列表?
- 在mongodb中存储日期/时间的最佳方法
- 如何读取文件的前N行?