2016-11-01 208 views
0

我知道有一百萬個類似的問題,但我很難找到正確的答案,所以如果有人能給我直接答案,我會很感激。計算兩個不同格式日期之間的時間差

我從後端字符串一些日期格式爲:

String days = "2016-12-01T15:43:42.2737987+01:00"; 

我的簡單日子格式如下:

private DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.getDefault()); 

我試圖讓今天的日期是這樣的:

String currentDateandTime = sdf.format(new Date()); 

和我在天計算差分方法如下:

public void daysBetween(String date1, String date2) { 
    Date mDate1; 
    Date mDate2; 
    try { 
     mDate1 = sdf.parse(date1); 
     mDate2 = sdf.parse(date2); 
     dateDiff = (mDate1.getTime() - mDate2.getTime())/(24 * 60 * 60 * 1000); 
     days = String.valueOf(dateDiff); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

所以這裏的問題是,我無法解析「天」的字符串,因爲,有時我得到7個位數秒,有時是2,依此類推......有沒有一種方法來調整這兩個日期爲了得到不同的日子?

+0

使用時區爲「YYYY-MM-dd'T'HH:ss.SSSSSSS'Z':MM」日期格式,這應該爲毫秒添加7個字段。如果該功能無效,請使用2個不同的formaters,一個用於2,另一個用於7個數字 – X3Btel

+0

如果您不介意導入庫,joda具有良好的時差功能。 – nasch

+0

有7個字段或任何數字的東西,我不知道他們會有多少人......我正在處理的這個項目已經很大,所以添加更多的庫不是真正的選擇,如果它不是必要的:) ...有沒有辦法以某種方式排除秒和這個+01:00? – joe

回答

0
String formatedDays = days.substring(0,18)+ days.substring(days.lastIndexOf("+")); 

這會讓你的日期字符串只用秒,將在它

相關問題