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

如何在Python格式化的本地时间字符串中显示时区名称?

解决Python datetime无法显示时区名称的问题

这个问题我之前也踩过坑!你用datetime.now()生成的是naive datetime对象——它没有携带任何时区信息,所以strftime('%Z')自然没法输出时区名称啦。要显示CET这类时区标识,得让datetime对象带上时区信息才行,下面分版本给你两种可行方案:

方案一:Python 3.9+ 用内置zoneinfo模块(推荐)

Python 3.9之后内置了zoneinfo模块,不需要额外安装依赖,直接调用系统本地时区即可:

from datetime import datetime
from zoneinfo import ZoneInfo

# 获取带本地时区的当前时间
current_time = datetime.now(ZoneInfo('local'))
# 格式化输出目标字符串
print(current_time.strftime('%d %b %Y %H:%M:%S %Z'))

运行后就能得到你想要的09 Apr 2019 13:23:52 CET这类输出啦。

方案二:Python 3.9以下 用pytz库

如果你的Python版本比较旧,需要先安装第三方时区库pytz:

pip install pytz

然后用以下代码实现需求:

from datetime import datetime
import pytz

# 获取本地时区(也可以直接指定'Europe/Paris'这类具体时区)
local_tz = pytz.localzone()
# 生成带时区信息的当前时间
current_time = datetime.now(local_tz)
# 格式化输出
print(current_time.strftime('%d %b %Y %H:%M:%S %Z'))

补充说明

为什么原来的代码失效?因为datetime.now()返回的对象没有tzinfo属性,%Z格式化符只有在datetime对象包含合法时区信息时,才会输出对应的时区名称。只要给datetime对象绑定正确的时区属性,%Z就能正常工作了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:59:50