2011-08-12 36 views

回答

2

只要這兩個時間都是GMT/UTC,你可以做date1.getTime() - date2.getTime(),然後將結果除以86400000得到天數。其餘的可能很直觀。

編輯 - 基於編輯的問題

將字符串轉換成日期,使用SimpleDateFormat類。

String yourDateString = "8/11/11 9:16:36 PM"; 
SimpleDateFormat format = 
      new SimpleDateFormat("MM/dd/yy HH:mm:ss a"); 
Date yourDate = format.parse(yourDateString); 
+0

非常感謝你的工作! – DRiFTy

2

大多數Date的getter都被棄用,取而代之的是Calendar方法。你可以這樣做

Date date1, date2; //initialized elsewhere 
Calendar day1 = new Calendar(); 
day1.setTime(date1) 

Calendar day2 = new Calendar(); 
day2.setTime(date2); 


int yearDiff, monthDiff, dayDiff, hourDiff, minuteDiff, secondDiff; 
yearDiff = Math.abs(day1.get(Calendar.YEAR)-day2.get(Calendar.YEAR)); 
monthDiff = Math.abs(day1.get(Calendar.MONTH)-day2.get(Calendar.MONTH)); 
dayDiff = Math.abs(day1.get(Calendar.DAY_OF_YEAR)-day2.get(Calendar.DAY_OF_YEAR)); 
hourDiff = Math.abs(day1.get(Calendar.HOUR_OF_DAY)-day2.get(Calendar.HOUR_OF_DAY)); 
minuteDiff = Math.abs(day1.get(Calendar.MINUTE)-day2.get(Calendar.MINUTE)); 
secondDiff = Math.abs(day1.get(Calendar.SECOND)-day2.get(Calendar.SECOND)); 

然後,你可以做任何你喜歡的數字。

+0

非常感謝。是的,我注意到很多日期方法已被棄用。我最終在這裏使用你的方法,它使事情變得非常簡單,我感謝你的幫助! +1 – DRiFTy

1

定義與您的格式相匹配的SimpleDateFormat(java doc非常直接),然後使用parse方法獲取適當的Date對象,從中可以輕鬆計算兩個日期之間的差異。 一旦你有這種差異,最好的可能是「手動」計算天數/小時/分鐘/秒的數量,儘管可能再次使用SimpleDateFormat(或其他格式化機制)來顯示適當的值一種通用的方式。