From e1b9c1868ec30245d1dda91c901524b173e33ea7 Mon Sep 17 00:00:00 2001 From: liyi Date: Tue, 11 Mar 2025 16:50:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E8=B0=83=E6=95=B4=E6=A0=A1=E5=87=86?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lockSet/lockTime/lockTime_logic.dart | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/main/lockDetail/lockSet/lockTime/lockTime_logic.dart b/lib/main/lockDetail/lockSet/lockTime/lockTime_logic.dart index 6e2fdf36..bb2e9962 100755 --- a/lib/main/lockDetail/lockSet/lockTime/lockTime_logic.dart +++ b/lib/main/lockDetail/lockSet/lockTime/lockTime_logic.dart @@ -50,10 +50,25 @@ class LockTimeLogic extends BaseGetXController { // 有效时间 final List indate = reply.data.sublist(150, 154); - final int indateValue = (0xff & indate[0]) << 24 | + int indateValue = (0xff & indate[0]) << 24 | (0xff & indate[1]) << 16 | (0xff & indate[2]) << 8 | (0xFF & indate[3]); + // 检查时间戳是否无效或超出范围 + if (indateValue == 0xffffffff || indateValue <= 0) { + // 使用当前系统时间戳(秒) + indateValue = DateTime.now().millisecondsSinceEpoch ~/ 1000; + AppLog.log('检测到无效时间戳,使用系统时间:$indateValue'); + } + + // 验证时间戳是否在合理范围内(例如:2000年到2100年之间) + final DateTime dateTime = + DateTime.fromMillisecondsSinceEpoch(indateValue * 1000); + if (dateTime.year < 2000 || dateTime.year > 2100) { + AppLog.log('时间戳超出合理范围: $indateValue'); + indateValue = DateTime.now().millisecondsSinceEpoch ~/ 1000; + } + AppLog.log( '====================indate:$indate indateValue:$indateValue'); state.dateTime.value = DateTool().dateToYMDHNString('$indateValue');