有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java比较文本文件中的24小时时间值

我想比较一个以空格分隔的文本文件中给出的时间值,该文件的内容是这样的

驾车者汤米之旅汤米08:15 08:45 18.3

我知道我可以通过创建扫描仪来读取文件来指定对象

try
    {
        File fin = new File("data.txt");
        Scanner scan = new Scanner(fin);
        ArrayList<String> theData = new ArrayList<String>();

        //read the column headings from the flat text file
        String line = scan.nextLine();
        while(scan.hasNextLine())
        {
            line = scan.nextLine();
            String[] list = line.split(" "); //this is space delimited
            //objects in the text file
            String driver = list[1];
            String trip = list[3];

        }
    }

在确保driver和trip字符串值相同后,我想比较时间值,但不确定如何将它们作为基本数据类型进行访问。我想做一些像

long initTime = list[4];

但是这个值有一个冒号,我可以得到一些帮助来比较给定文本文件中的时间值吗


共 (1) 个答案

  1. # 1 楼答案

    您需要确定两次之间的分钟数?持续时间如何?您可能需要使用Java8的LocalTime。首先分析日期:

    LocalTime time1 = LocalTime.parse(list[4]);
    LocalTime time2 = LocalTime.parse(list[5]);
    

    然后获取它们之间的分钟数:

    long minutes = time1.until(time2, ChronoUnit.MINUTES);
    

    这将给出第一次和第二次之间的分钟数。假设第一次总是早于第二次,并且它们代表相同的日历日

    编辑:如果只想使用原语,请将日期解析为两个整数,用冒号分割。将小时乘以60,然后再加上分钟,得到表示自午夜起的分钟数的初始时间