From 01c83aaec30a3d191d03fdcda1231b552d1aeafa Mon Sep 17 00:00:00 2001 From: tanglong <842690096@qq.com> Date: Tue, 10 Mar 2026 10:54:31 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E6=9E=90=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- YD_AllHeartRates.Api/Mqtt/MqttBackgroundService.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/YD_AllHeartRates.Api/Mqtt/MqttBackgroundService.cs b/YD_AllHeartRates.Api/Mqtt/MqttBackgroundService.cs index 6845adc..701a9dc 100644 --- a/YD_AllHeartRates.Api/Mqtt/MqttBackgroundService.cs +++ b/YD_AllHeartRates.Api/Mqtt/MqttBackgroundService.cs @@ -144,11 +144,14 @@ namespace YD_AllHeartRates.Api.Mqtt var payload = JsonSerializer.Deserialize(msg.Payload, _jsonOpt); if (payload == null || payload.devices == null || payload.devices.Count == 0) return; - var scoreTime = DateTime.ParseExact(payload.send_time, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture); + DateTime scoreTime; - // 如果时间 < SQL Server datetime 最小值,则用当前时间代替 - if (scoreTime < (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue) + if (string.IsNullOrWhiteSpace(payload.send_time) + || !DateTime.TryParseExact(payload.send_time, "yyyy-MM-dd HH:mm:ss", + CultureInfo.InvariantCulture, DateTimeStyles.None, out scoreTime) + || scoreTime < (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue) { + // 解析失败或时间非法 → 使用当前时间 scoreTime = DateTime.Now; }