如何使用条带时间“%Y%m%d%H:%m:%S”减去1分钟。?

2024-09-22 16:42:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图基本上使用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分钟。我不知道这是否可能?在


Tags: targetdatetimedateiftime格式时间sleep
2条回答

似乎您打算在if子句中使用名为target的格式化日期时间变量,但是您使用了名为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())

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

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())

相关问题 更多 >