Java将时间格式转换为整数或长整数

时间:2010-12-23 15:45:40

标签: java string time

我想知道将00:00:00格式的时间字符串转换为整数或长整数的最佳方法是什么?我的最终目标是能够将一堆字符串时间转换为整数/长整数,将它们添加到数组中,并在数组中找到最近的时间......

感谢任何帮助,谢谢!


好的,根据答案,我决定继续直接比较字符串。但是,我遇到了一些麻烦。可能有一个以上的“最近”时间,即两次相等的时间。如果是这种情况,我想将这两个时间的索引添加到ArrayList。这是我目前的代码:

    days[0] = "15:00:00";
    days[1] = "17:00:00";
    days[2] = "18:00:00";
    days[3] = "19:00:00";
    days[4] = "19:00:00";
    days[5] = "15:00:00";
    days[6] = "13:00:00";

    ArrayList<Integer> indexes = new ArrayList<Integer>();
    String curMax = days[0];

    for (int x = 1; x < days.length1; x++) {
        if (days[x].compareTo(curMax) > 0) {
            curMax = days[x];
            indexes.add(x);
            System.out.println("INDEX OF THE LARGEST VALUE: " + x);
        }
    }

但是,这是将索引1,2和3添加到ArrayList ...

任何人都可以帮助我吗?

6 个答案:

答案 0 :(得分:5)

您可以通过比较字符串找到最近的时间,您不需要先转换为长字符串。

e.g。

 String[] times = { "12:23:45", "23:59:59", "00:00:00" }
 Arrays.sort(times);
 String firstTime = times[0];
 String lastTime = times[times.length-1];

答案 1 :(得分:4)

使用java.text.SimpleDateFormat。您使用所需的格式构造它,然后调用parse(),传递字符串。然后,您可以获得每个所需的字段。

答案 2 :(得分:0)

使用simpleDateFormat解析该字符串并获取其中的Calendar实例 然后,使用日历实例的getTime()方法, 您将获得长格式并可以对这些日期进行排序。

答案 3 :(得分:0)

取决于你的目标究竟是什么。

如果只是为了能够按顺序排列时间,那么你就不需要转换它们了。假设它们都是8字符格式,String.compareTo()将起作用。

如果你真的想首先将它们转换为整数(可能是出于性能原因),只需使用Integer.parseInt(s.substring(0,2) + s.substring(3, 5) + s.substring(6))

答案 4 :(得分:0)

添加到@ Bozho的答案:从SimpleDateFormat获得Date对象后,您可以调用Date.getTime()来获取您想要的时间。

答案 5 :(得分:0)

嗯,与此处的其他建议一样,您可以使用Collections.sort(ArrayList),其中Arraylist包含所有日期对象。如果只需要最新的,请从此ArrayList中选择最后一个值。 我觉得这应该适合你。