欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

python 获取毫秒级时间问题的解决

时间:2021-12-13 12:26:51|栏目:Python代码|点击:

根据网上的一些说法,

在python里获取ms级系统时间可以通过以下方式获取:

import datetime
print(datetime.datetime.now().microsecond)

但通过以下代码测试,发现返回的并不是ms的值,而是us的值:

import datetime 
def getTime_ms():
    return (datetime.datetime.now().hour*3600 +\
            datetime.datetime.now().minute*60+\
            datetime.datetime.now().second )*1000+\
           datetime.datetime.now().microsecond/1000
 
def timetime():
    t = getTime_ms()
    while getTime_ms() - t < 500:
        pass
    a = getTime_ms()
    print(t, a, a- t) 
  
if __name__ == '__main__': 
    from timeit import timeit
    t = timeit('timetime()', 'from __main__ import timetime', number=1)
    print(t)

打印结果

(35460614, 35461114, 500) 0.499531984329

上面实验不太直观,换一个直观点的:

def timetime():
    t1 = datetime.datetime.now()
    while 1:
        t2 = datetime.datetime.now()
        if (t2 - t1).microseconds >= 1:
            print(t2,t2.microsecond,t1,t1.microsecond,(t2-t1).seconds)
            break 
 
if __name__ == '__main__':
    from timeit import timeit
    t = timeit('timetime()', 'from __main__ import timetime', number=1)
    print(t)
    #print (datetime.datetime.now())

输出

(datetime.datetime(2019, 4, 3, 10, 6, 20, 461882), 461882, datetime.datetime(2019, 4, 3, 10, 6, 20, 461863), 461863, 0) 7.10487365723e-05

def timetime():
    t1 = datetime.datetime.now()
    while 1:
        t2 = datetime.datetime.now()
        if (t2 - t1).microseconds >= 1000:
            print(t2,t2.microsecond,t1,t1.microsecond,(t2-t1).seconds)
            break 
 
if __name__ == '__main__':
    from timeit import timeit
    t = timeit('timetime()', 'from __main__ import timetime', number=1)
    print(t)
    #print (datetime.datetime.now())

输出

(datetime.datetime(2019, 4, 3, 10, 13, 52, 76548), 76548, datetime.datetime(2019, 4, 3, 10, 13, 52, 75547), 75547, 0) 0.00104904174805

补充:Python datetime去除毫秒 返回当前时间

datetime模块返回当前时间

import datetime
if __name__ == '__main__':
    a = datetime.datetime.now().replace(microsecond=0)
    print(a, type(a))

运算结果:

2020-05-22 12:13:42 <class 'datetime.datetime'> Process finished with exit code 0

上一篇:Python 常见加密操作的实现

栏    目:Python代码

下一篇:Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)

本文标题:python 获取毫秒级时间问题的解决

本文地址:http://www.codeinn.net/misctech/186732.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有