Как использовать стриптиз '% Y-% m-% d% H:% M:% S' минус - 1 минута.? - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь в основном использовать стриптиз, который дает мне формат '% 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 минута. Я не уверен, возможно ли это вообще?

Ответы [ 2 ]

2 голосов
/ 03 мая 2019

Похоже, вы хотели использовать отформатированную переменную datetime с именем target в предложении if, но вместо этого вы использовали строковое представление этой даты с именем 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())
0 голосов
/ 03 мая 2019

Если вы хотите использовать текущее время, чтобы определить выход

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())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...