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()
.
类似的东西:
这将打印当前时间
import time
import datetime
def getTime():
return int(round(time.time() * 1000))
class timer():
def start(self):
lastRun = getTime()
while 1:
while getTime() - lastRun < 100:
pass
lastRun = getTime()
x = datetime.datetime.utcnow()
print(x.strftime('%M.%S.%f'))
worker = timer()
worker.start()
这与使用 Python 所能获得的准确度差不多。
到解释部分:
x = datetime.datetime.utcnow()
将当前时间存储在一个x
明显调用的变量中。在 python 中,变量是带有函数的“对象”。这个特定的变量是在其中调用的函数strftime
。
strftime
接受一些参数并将当前时间转换为您希望能够读取的字符串,在这种情况下,我们将创建%M
分钟,然后是一个点,然后%S
是秒,最后是一个点,后面%f
是毫秒。
当然,它是基于您当前的时间,如果您需要计算某项运行了多长时间,您可以添加time.time() - self.time
到其中一个datetime.datetime
函数而不是utcnow()
,这样它就会计算某项运行了多长时间。
这是一个秒表
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
which 存储“启动时间”,我们now
用减去startup time
,所以操作是:
- 开店
- 对于每个循环,获取“现在”
- now-startup=运行时间
- 打印结果,它会自动格式化为“0:00:01.800000”