zcbdandan 2024-01-05 16:46 采纳率: 25%
浏览 14

如何用JAVA基于时间戳回放历史数据?

假如我有一个几G大小的数据文件,里边基于时间戳记录了最近几天收到的二进制数据包(每个数据包间隔1ms~1min不等),大概如何能比较合理的用java实现倍速回放这些数据包呢?

  • 写回答

2条回答 默认 最新

  • 郭晟玮 新星创作者: 编程框架技术领域 2024-01-05 17:59
    关注

    参考一下:

    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class Main {
    
        public static void main(String[] args) throws Exception {
            String[] data = { // 模拟从文件或数据库中读取到的数据,数据格式为"yyyy-MM-dd HH:mm:ss 数据"
                    "2024-01-05 09:56:04 data1",
                    "2024-01-05 09:56:05 data2",
                    // ...
            };
    
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
            for (int i = 0; i < data.length - 1; i++) {
                String[] record1 = data[i].split(" ");
                Date date1 = sdf.parse(record1[0] + " " + record1[1]);
                System.out.println(data[i]); // 打印当前数据
    
                String[] record2 = data[i + 1].split(" ");
                Date date2 = sdf.parse(record2[0] + " " + record2[1]);
    
                long diff = date2.getTime() - date1.getTime(); // 获取两条数据的时间戳差
                Thread.sleep(diff); // 线程休眠
            }
            System.out.println(data[data.length - 1]); // 打印最后一条数据
        }
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 1月5日