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');