From a4e4d26277b21dc32e68a4c4ff444f950ff04cbf Mon Sep 17 00:00:00 2001 From: "2569718930@qq.com" <2569718930@qq.com> Date: Sun, 8 Feb 2026 18:27:20 +0800 Subject: [PATCH] Please provide the diff for `e:\web\PolyWeather\bot_listener.py` to generate an accurate commit message. --- bot_listener.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/bot_listener.py b/bot_listener.py index bbf905d8..de2ae2d6 100644 --- a/bot_listener.py +++ b/bot_listener.py @@ -297,7 +297,21 @@ def start_bot(): if metar: obs_t = metar.get("observation_time", "") - obs_t_str = obs_t.split(" ")[1][:5] if " " in obs_t else obs_t[:5] + try: + if "T" in obs_t: + # 处理 ISO 格式 2026-02-08T09:46:00.000Z + from datetime import datetime, timezone, timedelta + dt = datetime.fromisoformat(obs_t.replace("Z", "+00:00")) + # 转换为当地时间 + utc_offset = open_meteo.get("utc_offset", 0) + local_dt = dt.astimezone(timezone(timedelta(seconds=utc_offset))) + obs_t_str = local_dt.strftime("%H:%M") + elif " " in obs_t: + obs_t_str = obs_t.split(" ")[1][:5] + else: + obs_t_str = obs_t + except: + obs_t_str = obs_t[:16] # 备选逻辑 elif mgm: m_time = mgm.get("current", {}).get("time", "") if "T" in m_time: