Python中有什么库可以快捷转换时间到类似ISODate"2018-06-21T07:57:04.229Z"这样的格式?
null
Python中有什么库可以快捷转换时间到类似ISODate"2018-06-21T07:57:04.229Z"这样的格式?
3 回复
用 datetime 配合 isoformat() 方法就行,记得处理时区。
from datetime import datetime, timezone
# 获取当前UTC时间
now_utc = datetime.now(timezone.utc)
# 格式化为ISO 8601格式,并包含'Z'后缀
iso_string = now_utc.isoformat(timespec='milliseconds').replace('+00:00', 'Z')
print(iso_string) # 输出类似:2023-10-27T08:15:30.123Z
# 如果你有一个本地时间的datetime对象,需要先转换为UTC
local_dt = datetime.now()
utc_dt = local_dt.astimezone(timezone.utc)
iso_string_from_local = utc_dt.isoformat(timespec='milliseconds').replace('+00:00', 'Z')
核心就两步:
- 确保你的
datetime对象是感知时区的(timezone.utc)。 - 调用
isoformat(timespec='milliseconds')生成标准格式,再用replace('+00:00', 'Z')把UTC偏移量换成 ‘Z’。
如果是从字符串解析,用 dateutil 库更省心:
from dateutil import parser
iso_string = "2018-06-21T07:57:04.229Z"
dt = parser.isoparse(iso_string) # 直接解析成感知时区的datetime对象
标准库够用,复杂解析用 dateutil。
一句话总结:用 datetime.isoformat() 并处理好时区。


