refactor(utils/datetime): rewrite utc datetime formatting logic

明确 naive 时区 datetime 的处理逻辑,补充和数据库存储约定的注释,将原逻辑拆分为显式的 naive/aware 分支处理,保持原有功能不变
This commit is contained in:
Kris 2026-06-22 21:20:35 +08:00
parent 077de8e6d6
commit fa519d12b9

View File

@ -120,10 +120,15 @@ def format_utc_datetime(value: dt.datetime | None) -> str | None:
Format a datetime to UTC ISO 8601 string, handling naive datetimes. Format a datetime to UTC ISO 8601 string, handling naive datetimes.
Returns None for None input. Returns None for None input.
Naive datetimes are assumed to be in UTC. Naive datetimes are assumed to be in UTC ( DB 存储约定一致所有 DateTime
列以 UTC naive 存储)aware datetimes 统一转换为 UTC
""" """
if value is None: if value is None:
return None return None
if value.tzinfo is None:
# naive datetime 视为 UTC直接附加 Z 后缀
return value.isoformat() + "Z"
# aware datetime 转换为 UTC
return utc_isoformat(value) return utc_isoformat(value)