2012-10-15 27 views
6

thể trùng lặp:
Calculate date/time difference in javaLàm thế nào để tìm thấy sự khác biệt hai thời điểm trên ứng dụng android

Tôi là một người mới trên Android và tôi muốn thực hiện một ứng dụng mới cho tôi. Tôi muốn subtruct hai ngày (dd/mm/yyyy) định dạng bằng cách sử dụng currentDate. Ví dụ tôi muốn tìm sự khác biệt của những ngày giữa ngày 01/02/2013 và currentDate. Tôi làm nó như thế nào?

Trả lời

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); 

Kiểm tra Ex1Ex2 ví dụ chi tiết hơn

+0

Ngày 01/02/2013 là ngày sửa nhưng tôi không muốn sửa ngày hiện tại trong mã của mình bằng tay. Tôi muốn điều đó khi tôi chạy ứng dụng, nó lấy ngày hiện tại từ hệ thống và nó tính toán sự khác biệt. Làm thế nào tôi có thể lấy ngày hiện tại từ hệ thống và sửa mã? –

+0

tôi đã thay đổi mã, hãy kiểm tra lại mã số –

+0

thanx rất nhiều. tôi hy vọng nó chạy –

1

Bạn có thể có một cái nhìn vào DateUtils, mà cung cấp một số phương pháp hữu ích để tính toán thời gian trôi qua giữa hai ngày, nhưng chỉ dành cho đại diện. Không sử dụng cách tiếp cận trực tiếp để chuyển đổi giữa các ngày/mili giây vì nó không tính đến năm nhuận, giây nhảy vọt, thay đổi thời gian mùa hè/mùa đông, v.v. Những cân nhắc này được xử lý bởi các lớp Lịch.

Cập nhật Bạn có thể sử dụng Joda thư viện để thực hiện ngày và thời gian tính toán tương đối như cái bạn cần.

Các vấn đề liên quan