discord.py如何在embed嵌入消息中添加可展示的时间对象
Discord.py Embed 添加时间展示实现方案
你需要的效果无需额外的自定义类型对象,discord.py的Embed原生支持该能力,直接使用内置的timestamp参数即可实现,具体逻辑如下:
- 直接将Python原生
datetime.datetime类型的时间对象传入Embed的timestamp参数,Discord客户端会自动将其渲染为你示例中展示的、位于Embed底部的标准化时间样式,且会自动适配查看用户的本地时区。 - 若需要在Embed正文、自定义字段中插入可自动本地化的时间,可直接使用Discord内置的时间戳标记语法,无需调用额外接口。
代码示例
import discord from datetime import datetime, timezone # 初始化Embed时直接传入时间戳 demo_embed = discord.Embed( title="通知", description="这是一条带时间标记的Embed消息", # 推荐传入UTC时间避免时区偏移,Discord会自动转换为用户本地时间 timestamp=datetime.now(timezone.utc) ) # 也可以为已创建的Embed单独设置时间戳 demo_embed.timestamp = datetime.now(timezone.utc) # 正文插入时间标记示例:Unix秒级时间戳+格式符,f代表完整日期时间 demo_embed.description += "\n事件触发时间:<t:1696128000:f>"
补充说明
timestamp参数仅支持传入标准datetime对象,不需要引入discord.py的其他自定义类型,你在官方文档中没有找到对应独立类型,是因为该参数直接兼容Python原生时间类型,没有做额外封装。
如果需要调整时间的展示格式,只需要修改时间戳标记的格式符即可:常用格式符包括t(仅时分)、d(仅日期)、f(完整日期时间)、R(相对时间,如“5分钟前”)。
内容的提问来源于stack exchange,提问作者J Muzhen
相关产品推荐
相关产品推荐

