如何在Python中获得以毫秒为单位的当前时间?
当前回答
这些以毫秒为单位的1000的乘法对于解决或使某些先决条件可以接受可能是不错的。它可以用来填补数据库中从未真正使用过它的空白。不过,在需要精确计时的真实情况下,它最终会失败。我不建议任何人将这种方法用于需要在特定时间进行操作或处理的关键任务操作。
例如: 往返ping在美国是30-80毫秒…你不能简单地把它加起来并有效地使用它。
我自己的例子要求每秒钟都有任务,这意味着如果我在第一个任务响应后进行四舍五入,我仍然会导致处理时间乘以每个主循环周期。结果是每60秒调用一次函数。一天大约1440英镑。不太准确。
只是一个想法,让人们寻找更准确的推理,而不是解决从未真正使用过的数据库差距。
其他回答
在3.7之后的Python版本中,最好的答案是使用time.perf_counter_ns()。如文件所述:
Time.perf_counter() ->浮点数
返回性能计数器的值(以小数秒为单位),即具有最高可用分辨率的时钟,用于测量短时间。它确实包括睡眠期间所消耗的时间,并且是系统范围的。返回值的参考点未定义,因此只有连续调用结果之间的差值才是有效的。
Time.perf_counter_ns () -> int
类似于perf_counter(),但是返回以纳秒为单位的时间
正如它所说,这将使用您的系统所提供的最佳计数器,并且它是专门为测量性能而设计的(因此试图避免其他计时器的常见陷阱)。
它也给了你一个很好的纳秒整数,所以只要除以1000000就得到你的毫秒:
start = time.perf_counter_ns()
# do some work
duration = time.perf_counter_ns() - start
print(f"Your duration was {duration // 1000000}ms.")
使用time.time ():
import time
def current_milli_time():
return round(time.time() * 1000)
然后:
>>> current_milli_time()
1378761833768
另一个解决方案是可以嵌入到您自己的utils.py中的函数
import time as time_ #make sure we don't override time
def millis():
return int(round(time_.time() * 1000))
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
推荐文章
- ValueError: numpy。Ndarray大小改变,可能表示二进制不兼容。期望从C头得到88,从PyObject得到80
- Anaconda /conda -安装特定的软件包版本
- 我在哪里调用Keras的BatchNormalization函数?
- 打印测试执行时间并使用py.test锁定缓慢的测试
- 如何解析unix时间戳到时间。时间
- 插入一行到熊猫数据框架
- 要列出Pandas DataFrame列
- 如何使用yyyyMMddHHmmss格式格式化当前时间?
- 在Django模型中存储电话号码的最佳方法是什么?
- 从导入的模块中模拟函数
- SQL Developer只返回日期,而不是时间。我怎么解决这个问题?
- 滚动或滑动窗口迭代器?
- python的方法找到最大值和它的索引在一个列表?
- 在mongodb中存储日期/时间的最佳方法
- 如何读取文件的前N行?