2016-11-01 209 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("+")); 

这会让你的日期字符串只用秒,将在它

相关问题