mirror of
https://ghfast.top/https://github.com/aeroxw/tick-stock-panel.git
synced 2026-09-12 20:14:16 +08:00
quote_service/depth_service 的 _is_trading_hours 原用 naive datetime.now() 取服务器本地时间; Docker 镜像 (python:slim) 默认 UTC, 北京 9:15-15:05 = UTC 1:15-7:05, 轮询窗口完全错开——Docker 部署的实时行情/五档监控在真实交易时段一次都不会跑。 - 新增 app/market_time.py: CN_TZ 固定 UTC+8 (A股无夏令时, 不依赖系统 tzdata, Windows 桌面版同样可用) - 两个服务的 _is_trading_hours / date.today() 全部切换 - monitor.py 的 as_of 日期同步对齐 - Dockerfile 加 ENV TZ=Asia/Shanghai 兜底 (日志时间戳)
22 lines
669 B
Python
22 lines
669 B
Python
"""A股市场时间工具 — 固定北京时间 (UTC+8, 无夏令时)。
|
|
|
|
服务器/容器本地时区不可靠 (python:slim 镜像默认 UTC), 交易时段判断、
|
|
实时行情落盘日期等必须显式使用北京时间, 否则 Docker 部署时轮询窗口
|
|
与真实交易时段完全错开 (北京 9:15-15:05 = UTC 1:15-7:05)。
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
from datetime import date, datetime, timedelta, timezone
|
|
|
|
CN_TZ = timezone(timedelta(hours=8))
|
|
|
|
|
|
def cn_now() -> datetime:
|
|
"""当前北京时间 (带时区)。"""
|
|
return datetime.now(CN_TZ)
|
|
|
|
|
|
def cn_today() -> date:
|
|
"""当前北京日期。"""
|
|
return datetime.now(CN_TZ).date()
|