Java конвертирует формат времени в целое или длинное - PullRequest
3 голосов
/ 23 декабря 2010

Мне интересно, как лучше всего преобразовать строку времени в формате 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 ]

5 голосов
/ 23 декабря 2010

Вы можете найти самое последнее время, сравнивая строки, вам не нужно сначала преобразовывать в длинные.

, например

 String[] times = { "12:23:45", "23:59:59", "00:00:00" }
 Arrays.sort(times);
 String firstTime = times[0];
 String lastTime = times[times.length-1];
4 голосов
/ 23 декабря 2010

Используйте java.text.SimpleDateFormat.Вы создаете его в нужном формате и затем вызываете parse(), передавая строку.Затем вы можете получить каждое из желаемых полей.

0 голосов
/ 23 декабря 2010

Ну, как и в случае с другими предложениями, вы можете использовать Collections.sort(ArrayList), где Arraylist содержит все объекты даты.Если вам нужна только последняя версия, выберите последнее значение из этого ArrayList.Я чувствую, что это должно помочь вам.

0 голосов
/ 23 декабря 2010

Добавление к ответу @ Bozho: Получив объект Date из SimpleDateFormat, вы вызываете Date.getTime (), чтобы узнать, сколько времени вы ищете.

0 голосов
/ 23 декабря 2010

Зависит от того, что именно является вашей целью.

Если это просто, чтобы иметь возможность упорядочить времена, то вам не нужно их преобразовывать.Если предположить, что все они имеют этот 8-символьный формат, будет работать String.compareTo().

Если вы действительно хотите сначала преобразовать их в целые числа (предположительно по соображениям производительности), просто используйте Integer.parseInt(s.substring(0,2) + s.substring(3, 5) + s.substring(6)).

0 голосов
/ 23 декабря 2010

Разобрать эту строку с помощью simpleDateFormat и получить экземпляр Calendar этого затем используйте метод getTime () экземпляра календаря, Вы получите в длинном формате и можете сортировать эти даты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...