# 2026-06-08 — 全站用户可见时间统一为北京时间 ## 变更摘要 存储与计算仍用 UTC;所有面向运维的**展示层**(Web 表格、Telegram、设置页刷新时间等)统一为 `Asia/Shanghai` 北京时间。 ## 动机 用户要求不论浏览器时区,界面与通知时间与国内运维习惯一致。 ## 方案 - **后端**:`server/utils/display_time.py`(`format_beijing` / `format_beijing_now`);Telegram、IP 白名单刷新时间、Telegram 测试消息接入 - **前端**:`frontend/src/utils/datetime.ts`(`parseApiDateTime` 将 MySQL naive UTC 正确解析 + `formatDateTimeBeijing` 等);15 页相关表格/内联详情/WS 告警条改用该工具 ## 涉及文件 - `server/utils/display_time.py`(新) - `server/infrastructure/telegram/__init__.py` - `server/background/ip_allowlist_refresh.py` - `server/api/settings.py` - `frontend/src/utils/datetime.ts`(新) - `frontend/src/utils/status.ts` - `frontend/src/composables/push/labels.ts` - `frontend/src/composables/useWebSocket.ts` - 多页 Vue:`Alerts` `Audit` `Commands` `Retries` `Schedules` `Scripts` `ScriptRuns` `Servers` 及凭据/子机内联组件 ## 迁移 / 重启 - 无 DB 迁移 - 需重新构建前端并重启 API ## 验证方式 ```bash .venv/bin/python -m pytest tests/test_display_time.py tests/test_telegram_time_format.py tests/test_agent_recovery_dedup.py -q cd frontend && npm run type-check ``` 浏览器:告警历史、审计、推送历史等列时间应为北京时间(与 UTC 差 8 小时)。