【问题标题】:Java convert time format to integer or longJava 将时间格式转换为整数或长整数
【发布时间】:2011-05-30 01:06:36
【问题描述】:

我想知道将 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...

谁能帮帮我?

【问题讨论】:

  • 您正在添加迄今为止发现的最大条目。也许您打算添加在循环之后找到的最大条目?即将循环中的最后两行移到它之后。
  • 或者你可以阅读我的例子。 ;)
  • 啊,谢谢。我喜欢你的例子,但我不能使用它,因为我需要保持数组元素的顺序,因为我需要记录最近时间的索引。

标签: java string time


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    例如

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

    【讨论】:

      【解决方案3】:

      使用java.text.SimpleDateFormat。你用所需的格式构造它,然后调用parse(),传递字符串。然后就可以获取到各个需要的字段了。

      【讨论】:

        【解决方案4】:

        取决于你的目标到底是什么。

        如果只是为了能够按顺序排列时间,那么您不需要转换它们。假设它们真的都是 8 个字符的格式,String.compareTo() 就可以了。

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

        【讨论】:

        • 嗨,Archie,我决定比较字符串,但遇到了问题。你能看看我的编辑吗?
        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            猜你喜欢
            • 2011-10-05
            • 1970-01-01
            • 1970-01-01
            • 2016-02-04
            • 2021-11-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多