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

Python中如何进行时区时间格式化及生成ISO 8601格式时间?

嘿,我来帮你搞定这两个Python时间处理的问题~

1. 如何在Python中将时间格式化为指定时区的时间?

处理时区时间推荐优先用标准库工具,不同Python版本有不同的实用方案:

Python 3.9+ 推荐用 zoneinfo(标准库)

这个版本自带的zoneinfo模块可以直接处理时区,搭配datetime使用非常顺手:

from datetime import datetime
from zoneinfo import ZoneInfo

# 获取当前UTC时间(带时区信息)
utc_now = datetime.now(ZoneInfo("UTC"))

# 转换为目标时区,比如上海时区(Asia/Shanghai)
target_time = utc_now.astimezone(ZoneInfo("Asia/Shanghai"))

# 格式化为你需要的字符串样式,这里示例带时区标识
formatted_time = target_time.strftime("%Y-%m-%d %H:%M:%S %Z")
print(formatted_time)  # 输出类似:2024-05-20 14:45:00 CST

Python 3.9以下版本用 pytz(第三方库)

需要先通过pip install pytz安装库,然后这样处理:

from datetime import datetime
import pytz

# 获取UTC时间
utc_now = datetime.now(pytz.utc)
# 指定目标时区
target_tz = pytz.timezone("Asia/Shanghai")
# 转换时区
target_time = utc_now.astimezone(target_tz)
# 格式化输出
formatted_time = target_time.strftime("%Y-%m-%d %H:%M:%S %Z")
print(formatted_time)

⚠️ 小提醒:尽量别用不带时区信息的"naive datetime"对象,不然很容易踩到时区混淆的坑!

2. 如何在Python中生成形如2020-12-18T21:43:42Z的时间格式?

先说说你之前代码的问题:date.fromisoformat只处理日期部分,而这个字符串包含时分秒和时区标识Z,得用datetime类来处理才行。

这个格式是ISO 8601标准的UTC时间表示,Z就代表UTC时区(等同于+00:00),生成和解析的方法如下:

生成该格式的字符串

如果你要生成当前UTC时间的这种格式,有两种简单方法:

from datetime import datetime, timezone

# 获取当前UTC时间(带时区信息)
utc_now = datetime.now(timezone.utc)

# 方法1:用isoformat生成后替换+00:00为Z
formatted_time = utc_now.isoformat().replace("+00:00", "Z")
print(formatted_time)  # 输出类似:2024-05-20T06:45:00Z

# 方法2:直接用strftime格式化
formatted_time = utc_now.strftime("%Y-%m-%dT%H:%M:%SZ")
print(formatted_time)

解析该格式的字符串

如果是要把2020-12-18T21:43:42Z转成datetime对象,Python 3.10及以下版本需要先把Z替换成+00:00,3.11+版本可以直接解析:

from datetime import datetime

time_str = "2020-12-18T21:43:42Z"

# Python 3.10及以下版本
dt = datetime.fromisoformat(time_str.replace("Z", "+00:00"))
# Python 3.11+ 可以直接写:dt = datetime.fromisoformat(time_str)

print(dt)  # 输出:2020-12-18 21:43:42+00:00

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:13:48