#android #date #time
#Android #Дата #время
Вопрос:
У меня есть код, возвращающий мне строку (ЧЧ: мм).
SimpleDateFormat curFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date dateObj;
try {
dateObj = curFormater.parse(start);
SimpleDateFormat postFormater = new SimpleDateFormat("HH:mm");
String newDateStr = postFormater.format(dateObj);
startView.setText(newDateStr);
Emission_start = newDateStr;
} catch (ParseException e) {
// TODO Auto-generated catch block
Log.d(" * Error", e.toString());
}
Это отлично работает… Но прямо сейчас я хотел бы:
- добавьте x (предоставляется динамически) минут (x = от 5 до 1000 минут) и преобразуйте во время (примерное время: 3:45, добавьте 25 минут, преобразуйте во время 4: 10)
- Получите текущее время и вычислите разницу между текущим временем и временем из шага 1 (4: 10)
- Получите разницу во времени (начиная с шага 2) за считанные минуты!
Спасибо за вашу помощь!
Ответ №1:
Я не тестировал, но что-то вроде этого должно сработать:
-
long newDate = dateObj.getTime()
(x * 60 * 1000) -
long diff =
System.currentTimeMillis() - newDate -
double diffInMins = diff / (60.0 * 1000.0)
Комментарии:
1. Что-то подобное я уже пробовал.. (Я тоже пробовал это), и результат неверный… Но я понятия не имею, почему…
2. После некоторого теста я обнаружил, что пункт 3. или 2. неверен… Новая дата в порядке…
3. Wups… это связано с ошибкой эмулятора… Публикуем неправильное текущее время.. исправлено! Спасибо за помощь!
Ответ №2:
-
используйте календарь
Calendar calInstance = новый GregorianCalendar(); calInstance.setTime(dateObj);
Затем добавьте любой фрагмент, который вы хотите, в течение нескольких минут
calInstance.add(Calendar.MINUTE, XX)
Для преобразования используйте свой форматировщик
postFormatter.format(calInstance.getTime());
-
это тривиально
-
Разницу в минутах также можно легко вычислить
большая разница в минутах = (currTimeInMillis — calInstance.getTimeInMillis())/(1000 * 60);