22 lines
611 B
Python
22 lines
611 B
Python
"""北京时间(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")
|