Добавьте время в datetime, чтобы его можно было проверить

#python #datetime #discord.py

#python #datetime #discord.py

Вопрос:

У меня есть бот discord, который может забанить участников из гильдий, и я хотел создать систему временных запретов, при которой пользователь забанен, проходит определенное количество времени, а затем он не забанен. Моя текущая система

 await user.ban(reason=reason)
await asyncio.sleep(duration)
await user.unban()
 

Это работает отлично, без каких-либо проблем, кроме того, что при перезапуске бота пользователь никогда не будет отключен, поскольку таймер никогда не завершается.

Я думаю об использовании datetime и сохранении времени, которое они получают либо «время отмены запрета», либо «время запрета и продолжительность», но я не могу понять, как добавить / вычесть продолжительность из datetime , а также как сравнить даты и время, чтобы узнать, истекло ли время.

Пожалуйста, кто-нибудь может мне помочь и сообщить, как управлять datetime.

Ответ №1:

Модуль Python datetime включает timedelta объекты для обработки смещений, как вы описываете. Например, если вы хотите определить время через 10 секунд прямо сейчас:

 >>> from datetime import datetime, timedelta
>>> datetime.today()   timedelta(seconds=10)
datetime.datetime(2021, 1, 29, 10, 15, 7, 675717)
 

Комментарии:

1. Отлично, я думаю, вы могли бы просто использовать «>» для сравнения 2 datetimes, чтобы проверить, истекло ли время?