2012-10-15 8 views

Odpowiedz

19
SimpleDateFormat dfDate = new SimpleDateFormat("dd/MM/yyyy"); 
    java.util.Date d = null; 
    java.util.Date d1 = null; 
    Calendar cal = Calendar.getInstance(); 
    try { 
      d = dfDate.parse("01/02/2012 "); 
      d1 = dfDate.parse(dfDate.format(cal.getTime()));//Returns 15/10/2012 
     } catch (java.text.ParseException e) { 
      e.printStackTrace(); 
     } 

    int diffInDays = (int) ((d.getTime() - d1.getTime())/ (1000 * 60 * 60 * 24)); 
    System.out.println(diffInDays); 

Sprawdź Ex1 i Ex2 dla bardziej szczegółowy przykład

+0

01.02.2013 data jest poprawiona, ale nie chcę ręcznie poprawiać daty w moim kodzie. Chcę, aby po uruchomieniu aplikacji pobierana była bieżąca data z systemu i obliczana była różnica poziomów. Jak mogę pobrać aktualną datę z systemu i naprawić w kodzie? –

+0

Zmieniłem kod, jeszcze raz to sprawdzam –

+0

thanx. Mam nadzieję, że to działa –

1

Można spojrzeć na DateUtils, który oferuje kilka metod narzędziowych, aby obliczyć czas, jaki upłynął między dwoma datami, ale tylko dla reprezentacji. Nie używaj bezpośredniego podejścia do konwersji pomiędzy dniami/milisekundami, ponieważ nie uwzględniają one lat przestępnych, sekund przestępnych, zmian czasu letniego/zimowego itp. Te rozważania są obsługiwane przez klasy kalendarza.

Aktualizacja Można użyć Joda bibliotekę do wykonywania względnych obliczeń daty i czasu, jak ten trzeba.

Powiązane problemy