比较文本文件

时间:2017-12-15 19:01:07

标签: java time

我想比较以空格分隔的文本文件中给出的时间值。

驾驶者Tommy Journey Tommy 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];

        }
    }

在确保驱动程序和trip字符串值相同之后,我想比较时间值,但我不知道如何将这些作为原始数据类型访问。我想做像

这样的事情
long initTime = list[4];

但是这个值中有冒号,我可以尝试比较给定文本文件中的时间值吗?

1 个答案:

答案 0 :(得分:2)

您需要确定两次之间的分钟数?在持续时间?你可能想要使用Java 8的LocalTime。首先解析日期:

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

然后得到他们之间的分钟:

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

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

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