如何在 discord.py 中使用 datetime 获取当前时间(不是 24 小时)?

Spa*_*le0 0 python discord.py

所以我试图使用时间戳函数来显示某人编辑他们的消息的时间。目前,这是我的代码:

@commands.Cog.listener()
async def on_message_edit(self, before, after):
 if before.author != self.bot.user:
  embed=discord.Embed(title="{}".format(before.author), description="Editted a Message:",color=0xfcca03)
  embed.add_field(name= "**Before:** " ,value=before.content, inline=False)
  embed.add_field(name= "**After:** ",value=after.content, inline=False)
  embed.add_field(name="**Details:** ", value = "Channel: " + str(after.channel) + "\n" + "ID: " + str({before.author.id}))
  guild = self.bot.get_guild(357331299792584707)
  embed.set_thumbnail(url = guild.icon_url)
  timestamp = datetime.now() 
  embed.set_footer(text=guild.name + "Timestamp: " + str(timestamp))
  channel = self.bot.get_channel(722949984227688519)
  await channel.send(embed=embed)
Run Code Online (Sandbox Code Playgroud)

该代码有效,但时间戳中充满了我不需要的其他信息。

例子: Timestamp: 2020-11-13 17:48:24.876424

我将如何使它看起来像这样?“时间戳:晚上 7:43”

任何帮助都会有很大帮助,谢谢!

azr*_*zro 5

您可以使用 datetime.strptime

timestamp = datetime.now()
print(timestamp)                        # 2020-11-13 19:12:26.718388
print(timestamp.strftime(r"%I:%M %p"))  # 07:12 PM
Run Code Online (Sandbox Code Playgroud)

具体使用以下格式代码

  • %IHour(12 小时制)作为零填充的十进制数

  • %p对于语言环境下的任一上午或下午

  • %M分钟作为零填充的十进制数