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

如何生成'2022-12-01T09:13:45Z'格式的ISO时间字符串?

解决本地时间转带Z标识的ISO UTC时间问题

你的代码输出不带Z是因为datetime.now()获取的是无时区信息的本地时间,isoformat()对这种"朴素(naive)" datetime只会输出日期时间部分,不会添加时区标识。而Z代表UTC时区,所以需要生成UTC时间并格式化为目标格式。

方法1:直接生成UTC时间并添加Z

这种方法最简单,直接获取当前UTC时间,手动拼接Z:

from datetime import datetime

# 获取UTC时间并格式化为目标格式
iso_date = datetime.utcnow().replace(microsecond=0).isoformat() + 'Z'
print('ISO Datetime:', iso_date)

输出示例:2022-12-01T09:13:45Z

方法2:将本地时间转换为UTC后格式化

如果需要先基于本地时间转换,可指定本地时区,转换为UTC后再格式化:

from datetime import datetime
import pytz

# 替换为你的本地时区(比如Asia/Shanghai、Europe/London等)
local_tz = pytz.timezone('Asia/Shanghai')
# 获取带时区的本地时间
local_dt = datetime.now(local_tz)
# 转换为UTC时间并去除微秒
utc_dt = local_dt.astimezone(pytz.utc).replace(microsecond=0)
# 格式化为带Z的ISO格式
iso_date = utc_dt.strftime('%Y-%m-%dT%H:%M:%SZ')
print('ISO Datetime:', iso_date)

或者也可以用isoformat()后替换时区后缀:

iso_date = utc_dt.isoformat().replace('+00:00', 'Z')

关键说明

  • Z是UTC时区的标准标识,对应偏移量+00:00
  • 带时区信息的datetime(aware datetime)才能正确处理时区转换,避免时间计算错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 12:15:32