所以我有以下时间戳:
23-03-2023 10:11:00
在 python 中如何从当前时间休眠到时间戳,同时以小时-分钟-秒的形式打印剩余时间?
我不会安静所有不同时间戳格式的逻辑。
我看到几个线程只计算了一个简单的时间增量,但我的直觉告诉我这不是正确的方法。
像这样:
t1 = datetime.datetime.now()
# other stuff here
t2 = datetime.datetime.now()
delta = t2 - t1
if delta.seconds > WAIT:
# do stuff
else:
# sleep for a bit
也许你们有什么想法。
尝试减去日期(但检查它不是负数),然后使用
.total_seconds()
函数获取以秒为单位的时差。将该数字传递给time.sleep()
:
import time
import datetime
def sleepUntil(t2):
t1 = datetime.datetime.now()
if t1 > t2:
return
td = t2 - t1
time.sleep(td.total_seconds())
sleepUntil(datetime.datetime(2023, 3, 13, 9, 27, 50))
如果您想要倒计时,请使用带有
range()
和 time.sleep(1)` 的循环:
import time
import datetime
def sleepUntil(t2):
t1 = datetime.datetime.now()
if t1 > t2:
return
td = t2 - t1
for i in range(int(td.total_seconds()), 0, -1):
print(i)
time.sleep(1)
sleepUntil(datetime.datetime(2023, 3, 13, 9, 27, 50))