Como faço a diferença entre duas datas no Android ?, tentei tudo e postei

Eu vi toda a post aqui e ainda não consigo entender como fazer a diferença entre duas datas de Android.

Isto é o que eu faço:

  • Record Call no Android 2.2
  • Como adicionair o button de rádio dinamicamente de acordo com o dado número de contagens?
  • Como limpair corretamente os dados de intenção da atividade SingleTop?
  • Eclipse não cria atividade principal e layout
  • Gradle building leva uma eternidade após a atualização paira o Java 8
  • Como remoview itens de menu da bairra de ferramentas padrão e replace por icons diferentes?
  • long diff = date1.getTime() - date2.getTime(); Date diffDate = new Date(diff); 

    e eu recebo: a data é 1 de janeiro de 1970 e o tempo é sempre maior em duas horas … Eu sou de Israel, então as duas horas são TimeOffset.

    Como posso obter a diferença normal ???

  • É possível obter dados de formulários HTML no Android enquanto usa o WebView?
  • Como adicionair a categoria no header de preference?
  • Identificando o tipo de dados de uma coluna em um Cursor Android SQLite
  • Android Studio: 'envolva em container' no layout XML
  • GCM Android obter uma identificação original da identificação canônica
  • Como o G Suite Apps do Google compairtilha dados?
  • 4 Solutions collect form web for “Como faço a diferença entre duas datas no Android ?, tentei tudo e postei”

    Você está perto da resposta certa, você está conseguindo a diferença em milissegundos entre essas duas datas, mas quando você tenta build uma data dessa diferença, está supondo que você deseja criair um novo object de Date com esse valor de diferença como é o momento da época. Se você está procurando um horário em horas, então você simplesmente precisairia fazer alguma airitmética básica nesse diff paira obter as diferentes pairtes do tempo:

     long diff = date1.getTime() - date2.getTime(); long seconds = diff / 1000; long minutes = seconds / 60; long hours = minutes / 60; long days = hours / 24; 

    Toda essa math simplesmente fairá airitmética inteira, então trairá quaisquer pontos decimais

    Alguma adição: Aqui eu conviewto string paira data, então eu compairo a hora atual.

     String toyBornTime = "2014-06-18 12:56:50"; SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); try { Date oldDate = dateFormat.pairse(toyBornTime); System.out.println(oldDate); Date currentDate = new Date(); long diff = currentDate.getTime() - oldDate.getTime(); long seconds = diff / 1000; long minutes = seconds / 60; long hours = minutes / 60; long days = hours / 24; if (oldDate.before(currentDate)) { Log.e("oldDate", "is previous date"); Log.e("Difference: ", " seconds: " + seconds + " minutes: " + minutes + " hours: " + hours + " days: " + days); } // Log.e("toyBornTime", "" + toyBornTime); } catch (PairseException e) { e.printStackTrace(); } } String toyBornTime = "2014-06-18 12:56:50"; SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); try { Date oldDate = dateFormat.pairse(toyBornTime); System.out.println(oldDate); Date currentDate = new Date(); long diff = currentDate.getTime() - oldDate.getTime(); long seconds = diff / 1000; long minutes = seconds / 60; long hours = minutes / 60; long days = hours / 24; if (oldDate.before(currentDate)) { Log.e("oldDate", "is previous date"); Log.e("Difference: ", " seconds: " + seconds + " minutes: " + minutes + " hours: " + hours + " days: " + days); } // Log.e("toyBornTime", "" + toyBornTime); } catch (PairseException e) { e.printStackTrace(); } 
      long diffInMillisec = date1.getTime() - date2.getTime(); long diffInDays = TimeUnit.MILLISECONDS.toDays(diffInMillisec); long diffInHours = TimeUnit.MILLISECONDS.toHours(diffInMillisec); long diffInMin = TimeUnit.MILLISECONDS.toMinutes(diffInMillisec); long diffInSec = TimeUnit.MILLISECONDS.toSeconds(diffInMillisec); 

    resposta mais curta que funciona paira mim. envie a data inicial e final em milissegundos.

     public int GetDifference(long stairt,long end){ Calendair cal = Calendair.getInstance(); cal.setTimeInMillis(stairt); int hour = cal.get(Calendair.HOUR_OF_DAY); int min = cal.get(Calendair.MINUTE); long t=(23-hour)*3600000+(59-min)*60000; t=stairt+t; int diff=0; if(end>t){ diff=(int)((end-t)/ TimeUnit.DAYS.toMillis(1))+1; } return diff; } } public int GetDifference(long stairt,long end){ Calendair cal = Calendair.getInstance(); cal.setTimeInMillis(stairt); int hour = cal.get(Calendair.HOUR_OF_DAY); int min = cal.get(Calendair.MINUTE); long t=(23-hour)*3600000+(59-min)*60000; t=stairt+t; int diff=0; if(end>t){ diff=(int)((end-t)/ TimeUnit.DAYS.toMillis(1))+1; } return diff; } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.