refactor(utils/datetime): rewrite utc datetime formatting logic
明确 naive 时区 datetime 的处理逻辑,补充和数据库存储约定的注释,将原逻辑拆分为显式的 naive/aware 分支处理,保持原有功能不变
This commit is contained in:
parent
077de8e6d6
commit
fa519d12b9
@ -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)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user