import time
import datetime
class timer():
def start(self):
while 1:
x = datetime.datetime.utcnow()
print(x.strftime('%M.%S.%f'))
time.sleep(0.1)
worker = timer()
worker.start()
这就是工作。
请注意,Python的精确度是非常有限的,如果您想获得一个更完美的计时器,您必须存储最后一个已知的毫秒(1/1000秒),并创建一个while 1循环来等待正确的时间,然后释放并继续start()内的无休止的循环。
大概是:
这将打印当前时间
^{pr2}$
这与Python所能达到的精确度差不多。
对于解释部分:
x = datetime.datetime.utcnow()将把当前时间存储在一个名为x的变量中。在python中,变量是带有函数的“对象”。。而这个特殊的变量是一个名为strftime的函数。
strftime接受一些参数,并将当前时间转换为您希望能够读取的字符串,在本例中,我们将创建%M分钟,然后再创建{}秒,最后是一个点,后跟%f,即毫秒。
当然,它是基于您当前的时间,如果您需要计算某个东西已经运行了多长时间,您可以将time.time() - self.time添加到datetime.datetime中,而不是{},这样它就可以计算出某个东西运行了多长时间。
这是个秒表import time
import datetime
def getTime():
return int(round(time.time() * 1000))
class timer():
def __init__(self):
self.time = datetime.datetime.today()
def start(self):
lastRun = getTime()
while 1:
while getTime() - lastRun < 100:
pass
lastRun = getTime()
x = datetime.datetime.today() - self.time
print(x)
worker = timer()
worker.start()
代码几乎完全相同,唯一的区别是使用了存储“启动时间”的self.time,我们将用startup time减去{},因此操作将是:存储启动
对于每个循环,获取“现在”
现在启动=运行时间
打印结果,自动格式化为“0:00:01.800000”