0

我试图基本上使用striptime,它给我'%Y-%m-%d %H:%M:%S'等格式,'2019-05-03 09:00:00'我想要实现的是我想花时间 - 1分钟输出应该是 -2019-05-03 08:59:00

到目前为止我所做的是

    date_time = '2019-05-03 09:00:00'
    target = datetime.strptime(date_time, '%Y-%m-%d %H:%M:%S')

    now = datetime.now()

    delta = target - now

    if delta > timedelta(0):
        print('Will sleep {} : {}'.format(date_time, delta))
        time.sleep(delta.total_seconds())

而且我不确定如何使功能完成- 1分钟。我不确定它是否可能?

4

2 回答 2

2

看来您打算使用targetif 子句中调用的格式化 datetime 变量,但您使用了该日期的字符串表示形式,称为date_time.

改用 datetime 对象并减去timedelta(minutes=1)

工作示例:

date_time = '2019-05-03 09:00:00'
target = datetime.strptime(date_time, '%Y-%m-%d %H:%M:%S')

now = datetime.now()

delta = target - now

if delta > timedelta(0):
    target = target - timedelta(minutes=1)
    print('Will sleep {} : {}'.format(target, delta))
    time.sleep(delta.total_seconds())
于 2019-05-02T22:52:41.920 回答
0

如果您想使用当前时间来确定您的输出

import datetime, time
from datetime import timedelta

daytime = '2019-05-03 09:00:00'
target = datetime.datetime.strptime(daytime, '%Y-%m-%d %H:%M:%S')
print (datetime.datetime.now())

now = datetime.datetime.now()
new_time = target-now

if  new_time > datetime.timedelta(0):
        print('Will sleep {} : {}'.format(daytime, new_time))
        time.sleep(new_time.total_seconds())
于 2019-05-02T22:49:03.150 回答