将discord.py中的冷却计时器转换为hrs:min:sec格式



我有一个使用discord.py制作的机器人。我添加了一个建议命令并添加了冷却时间。之后我添加了以下代码:

@suggest.error
async def suggest_error(ctx, error):
if isinstance(error, commands.CommandOnCooldown):
msg = 'You are too fast! Please try again in {:.2f}s'.format(error.retry_after)
await ctx.send(msg)
else:
raise error

现在,它以秒为单位显示时间,我如何使它以小时:分钟:秒的格式显示?

您可以使用日期时间模块

import datetime
remaining_time = str(datetime.timedelta(seconds=int(error.retry_after)))
def hms_from_secs(seconds: int) -> str:
seconds = int(seconds)
hours = seconds // 3600
minutes = (seconds % 3600) // 60
seconds = seconds % 60
return f"{hours:02} hour(s) {minutes:02} minute(s)"

最新更新