如何在Python中获得以毫秒为单位的当前时间?
当前回答
在Python 3.8+中进行了一些测试后,我注意到这些选项给出了完全相同的结果,至少在Windows 10中是这样。
import time
# Option 1
unix_time_ms_1 = int(time.time_ns() / 1000000)
# Option 2
unix_time_ms_2 = int(time.time() * 1000)
请随意使用你更喜欢的一个,我不认为有任何需要比这个更复杂的解决方案。
其他回答
Time.time()可能只给出秒的分辨率,毫秒的首选方法是datetime。
from datetime import datetime
dt = datetime.now()
dt.microsecond
另一个解决方案是可以嵌入到您自己的utils.py中的函数
import time as time_ #make sure we don't override time
def millis():
return int(round(time_.time() * 1000))
更新:感谢@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)```
def TimestampMillisec64():
return int((datetime.datetime.utcnow() - datetime.datetime(1970, 1, 1)).total_seconds() * 1000)
如果您使用我的代码(如下所示),时间将以秒为单位出现,然后在小数之后是毫秒。我认为Windows和Unix之间是有区别的——如果有,请评论。
from time import time
x = time()
print(x)
我的结果(在Windows上)是:
1576095264.2682993
编辑:没有区别:)谢谢tc0nn
推荐文章
- 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'的模块