gao.qiang 1 месяц назад
Родитель
Сommit
7a5a8f2bef

+ 18 - 4
hazard-sdk/src/main/java/com/ozs/controller/upload/GeoHazardMonitorTokenController.java

@@ -507,25 +507,39 @@ public class GeoHazardMonitorTokenController {
         }
         return null;
     }
-
+    /**
+     * 从给定的字符串列表中筛选出时间戳最新的记录
+     * 此方法用于处理一组特定格式的时间戳和数据字符串,找出其中时间戳最新的记录
+     * 每个输入字符串都由时间戳和数据组成,两者通过等号分隔
+     * 时间戳的格式遵循ISO 8601标准,包括日期、时间、毫秒和时区信息
+     *
+     * @param objects 包含时间戳和数据字符串的列表
+     * @return 返回列表中时间戳最新的数据部分
+     */
     public String records(List<String> objects) {
-
+        // 创建一个DateTimeFormatter实例,用于解析和格式化时间戳
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
+        // 初始化最大时间戳变量
         OffsetDateTime maxTime = null;
-
+        // 遍历输入列表,寻找时间戳最大的记录
         for (String timeString : objects) {
+            // 分割时间戳和数据
             String[] split = timeString.split("=");
+            // 解析时间戳
             OffsetDateTime time = OffsetDateTime.parse(split[0], formatter);
+            // 更新最大时间戳
             if (maxTime == null || time.isAfter(maxTime)) {
                 maxTime = time;
             }
         }
-
+        // 创建一个迭代器,用于移除时间戳不是最新的记录
         Iterator<String> iter = objects.iterator();
         while (iter.hasNext()) {
+            // 再次遍历列表,移除时间戳不是最大的记录
             String timeString = iter.next();
             String[] split = timeString.split("=");
             OffsetDateTime time = OffsetDateTime.parse(split[0], formatter);
+            // 如果时间戳不是最大,则移除该记录
             if (!time.isEqual(maxTime)) {
                 iter.remove();
             }