Python 如何睡眠到特定时间戳“DD-MM-YYYY HH:MM:SS”

问题描述 投票:0回答:1

所以我有以下时间戳:

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

也许你们有什么想法。

python timestamp sleep
1个回答
0
投票

尝试减去日期(但检查它不是负数),然后使用

.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))
© www.soinside.com 2019 - 2024. All rights reserved.