Получите разницу во времени в андроиде?

В моем приложении Android я получаю дату и время в следующем формате через HTTP-запрос.

Вт апр 17 16:23:33 IST 2012

Теперь я хочу рассчитать разницу во времени между этим временем и текущим временем. У меня есть много способов рассчитать разницу во времени в Интернете, но все эти решения имеют разные форматы. Как я могу рассчитать разницу во времени с форматом выше времени?

Редактировать: Это код, который я использовал для его работы.

DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"); Date dateOne = df.parse("Tue apr 22 13:07:32 IST 2012"); Date dateTwo = df.parse("Tue Apr 22 13:07:33 IST 2012"); long timeDiff = Math.abs(dateOne.getTime() - dateTwo.getTime()); System.out.println("difference:" + timeDiff); //differencs in ms 

Но я должен принять текущее время в формате «Tue apr 22 13:07:32 IST 2012» для использования в качестве dateTwo.

Вы также можете использовать этот код :::

 DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); Date dateOne = df.parse("2011-02-08 10:00:00 +0300"); Date dateTwo = df.parse("2011-02-08 08:00:00 +0100"); long timeDiff = Math.abs(dateOne.getTime() - dateTwo.getTime()); System.out.println("difference:" + timeDiff); // difference: 0 

Создайте объект SimpleDateFormat(String pattern) используя шаблон, описывающий вашу дату, указанную выше.

Затем используйте parse(String) и введите в него дату даты. Он должен вернуть вам объект Date . Затем вы можете использовать Date.getDateInstance().getTime() чтобы получить текущее время.

Получение разницы во времени – это вопрос вычитания времени сервера из текущего времени.

Попробуйте этот код

 Date pdate = /* your date comming from HTTP */ Date cdate = new Date(System.currentTimeMillis()); long difference = cdate.getTime() - pdate.getTime(); 

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

 String format = "Tue Apr 17 16:23:33 IST 2012"; int month = 0; Calendar yourDate = Calendar.getInstance(); String[] months = new String[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; String datArr[] = format.split(" "); String[] time = datArr[3].split(":"); for (int i = 0; i < months.length; i++) { if (months[i] == datArr[1]) { month = i; } } yourDate.set(Integer.parseInt(datArr[5]), month, Integer.parseInt(datArr[2]), Integer.parseInt(time[0]), Integer.parseInt(time[1])); Log.i("Your Date= ", yourDate.toString()); Log.i("Now Date= ",Calendar.getInstance().toString()); 

Используя это, вы можете получить разницу во времени между этими двумя датами.

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

Вы можете скачать класс отсюда: DateTimeDifference GitHub Link

  • Простой в использовании
  Long currentTime = System.currentTimeMillis ();
 Long previousTime = (System.currentTimeMillis () - 864000000);  // 10 дней назад

 Log.d («DateTime:», «Difference With Second:» + AppUtility.DateTimeDifference (currentTime, previousTime, AppUtility.TimeDifference.SECOND));
 Log.d («DateTime:», «Difference With Minute:» + AppUtility.DateTimeDifference (currentTime, previousTime, AppUtility.TimeDifference.MINUTE)); 
  • Вы можете сравнить приведенный ниже пример
  If (AppUtility.DateTimeDifference (currentTime, previousTime, AppUtility.TimeDifference.MINUTE)> 100) {
     Log.d («DateTime:», «Разница между двумя датами отличается более чем на 100 минут»);
 } Еще {
     Log.d («DateTime:», «Разница между двумя датами не более 100 минут»);
 }