如何在Python中获得以毫秒为单位的当前时间?
当前回答
如果你关心测量流逝的时间,你应该使用单调时钟(python 3)。例如,如果一个NTP查询调整了你的系统时间,这个时钟不会受到系统时钟更新的影响。
>>> import time
>>> millis = round(time.monotonic() * 1000)
它提供了一个以秒为单位的参考时间,可用于以后比较以测量经过的时间。
其他回答
在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()可能只给出秒的分辨率,毫秒的首选方法是datetime。
from datetime import datetime
dt = datetime.now()
dt.microsecond
只是示例代码:
import time
timestamp = int(time.time()*1000.0)
输出: 1534343781311
另一个解决方案是可以嵌入到您自己的utils.py中的函数
import time as time_ #make sure we don't override time
def millis():
return int(round(time_.time() * 1000))
我发现的以毫秒为单位获取当前UTC时间的最简单方法是:
# timeutil.py
import datetime
def get_epochtime_ms():
return round(datetime.datetime.utcnow().timestamp() * 1000)
# sample.py
import timeutil
timeutil.get_epochtime_ms()
推荐文章
- python中的assertEquals和assertEqual
- 如何保持Python打印不添加换行符或空格?
- 为什么Python的无穷散列中有π的数字?
- Python 3.7数据类中的类继承
- 如何在PyTorch中初始化权重?
- 计数唯一的值在一列熊猫数据框架像在Qlik?
- 使用Pandas将列转换为行
- 从matplotlib中的颜色映射中获取单个颜色
- 将Pandas或Numpy Nan替换为None以用于MysqlDB
- 使用pandas对同一列进行多个聚合
- 使用Python解析HTML
- django MultiValueDictKeyError错误,我如何处理它
- 如何在for循环期间修改列表条目?
- 我如何在Django中创建一个鼻涕虫?
- 没有名为'django.core.urlresolvers'的模块