You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.py中datetime不同时区转换:UTC转EST等时区的实现方法问询

时区转换解决方案

你当前输出为UTC时间是因为默认生成的datetime对象没有主动指定目标时区,若你的运行环境系统时区为UTC,就会默认输出UTC时间。可通过以下两种方案实现指定时区转换:

方案1:Python 3.9+ 内置zoneinfo模块(无需安装第三方依赖)

该方案使用Python标准库自带的时区处理能力,可自动适配对应时区的冬令时/夏令时规则。

  1. 导入对应模块
import datetime
from zoneinfo import ZoneInfo
  1. 修改Last Seen字段的赋值代码,指定目标时区即可:
embed.add_field(name = "**Currently Playing**" , value = "Offline" , inline = True)
# 示例为美国纽约时区,自动切换EST/EDT,如需固定纯EST(UTC-5)可替换为"Etc/GMT+5"
embed.add_field(name = "**Last Seen**" , value = datetime.datetime.fromtimestamp(int(lastseen), tz=ZoneInfo("America/New_York")).strftime('%Y-%m-%d at %H:%M %z %Z') , inline = True)

方案2:低版本Python使用pytz第三方库

如果你的Python版本低于3.9,可使用成熟的pytz库处理时区:

  1. 先安装pytz
pip install pytz
  1. 导入模块并修改代码
import datetime
import pytz

embed.add_field(name = "**Currently Playing**" , value = "Offline" , inline = True)
embed.add_field(name = "**Last Seen**" , value = datetime.datetime.fromtimestamp(int(lastseen), tz=pytz.timezone("America/New_York")).strftime('%Y-%m-%d at %H:%M %z %Z') , inline = True)

其他时区替换规则

如需切换为其他指定时区,只需将代码中的时区标识符替换为对应值即可,常用时区标识符示例:

  • 中国标准时间:Asia/Shanghai
  • 英国伦敦时间:Europe/London
  • 日本东京时间:Asia/Tokyo

内容的提问来源于stack exchange,提问作者Ethan Armstrong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 11:51:01