"""北京时间(Asia/Shanghai)格式化,用于推送与展示。""" from __future__ import annotations from datetime import datetime, timezone from zoneinfo import ZoneInfo _TZ_CN = ZoneInfo("Asia/Shanghai") def utc_now() -> datetime: return datetime.now(timezone.utc) def format_beijing_wall(dt: datetime | None = None) -> str: """与微信示例一致:YYYY-MM-DD HH:MM(北京时间,无时区后缀)。""" if dt is None: dt = utc_now() elif dt.tzinfo is None: dt = dt.replace(tzinfo=timezone.utc) return dt.astimezone(_TZ_CN).strftime("%Y-%m-%d %H:%M")