Files
2026-07-08 23:08:55 +08:00

23 lines
794 B
Python

from datetime import datetime
from datetime import date
from zoneinfo import ZoneInfo
BEIJING_TZ = ZoneInfo("Asia/Shanghai")
def beijing_now() -> datetime:
# 数据库字段使用无时区DateTime,写入前统一转换成北京时间,避免UTC时间直接显示到业务界面。
return datetime.now(BEIJING_TZ).replace(tzinfo=None)
def beijing_today() -> date:
# Agent日报的业务日期按北京时间计算,避免UTC服务器在清晨生成前一天日报。
return datetime.now(BEIJING_TZ).date()
def to_beijing_naive(value: datetime) -> datetime:
# 外部接口常返回带时区时间,入库前统一换算为北京时间的无时区值。
if value.tzinfo is None:
return value
return value.astimezone(BEIJING_TZ).replace(tzinfo=None)