Объект времени Java с большим количеством часов (для обратного отсчета)

#java #android #parsing #type-conversion #java-time

#java #Android #синтаксический анализ #преобразование типа #java-time

Вопрос:

У меня есть этот код: что это делает, так это преобразует строку в объект времени.

   String time = "288:30:18";
  DateFormat sdf = new SimpleDateFormat("hh:mm:ss");
  Date date = sdf.parse(time);
  

Основная цель состоит в том, чтобы пользователь мог вводить время в формате ЧЧ: ММ: СС. Дело в том, что HH может быть любым числом (> 12, даже> 24). Как мне сохранить HH таким, какой он есть?
В приведенном выше фрагменте я получаю время как 12:30:18. Как мне предотвратить анализ части HH (я хочу, чтобы она оставалась 288)?

Комментарии:

1. Не пытайтесь сделать это датой. Я бы использовал Joda-Time Interval

2. не могли бы вы дать мне код? Я хочу, чтобы он был проанализирован из строки

3. Или вы могли бы использовать установленный в календаре (МИНУТА, …) набор (СЕКУНДА, …)

4. Пожалуйста, дайте какой-нибудь код. Мне НУЖНО, чтобы он был проанализирован из строки.

5. Если вы сохраните его как 288 , то для определения точного времени потребуется 288 часов. Если вы хотите сохранить его как есть, то почему вы используете DateFormat? Просто используйте только эту строку.

Ответ №1:

Попробуйте это:

  1. Проанализируйте часы самостоятельно (используя подстроку от индекса 0 до первого «:».
  2. Запустите приведенный выше код (ваш код)
  3. Установите часы в объекте «дата» на число, которое вы проанализировали.

Комментарии:

1. Это всегда был вариант, но я хотел знать, существуют ли уже методы для синтаксического анализа

2. Я не очень хорошо знаком с Android, но иногда лучше использовать такое простое решение, как это, чем пытаться найти «правильное» решение 🙂

3. это неправильно. Речь идет об использовании существующих решений.

Ответ №2:

Хорошо, я нашел лучший способ для обратного отсчета в Android. Вот код:

   CountDownTimer c=new CountDownTimer(30000,1000) {

    @Override
    public void onTick(long millisUntilFinished) {
        // TODO Auto-generated method stub


    }

    @Override
    public void onFinish() {
        // TODO Auto-generated method stub


    }
}.start();