/**
* 统计两个时间的时间差
* two-one
* 相差几秒几毫秒
*/
public static String getDistanceDateTime(Date one, Date two) {
long day = 0;//天数差
long hour = 0;//小时数差
long min = 0;//分钟数差
long second=0;//秒数差
long diff=0 ;//毫秒差
String result = "";
final Calendar c = Calendar.getInstance();
c.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
c.setTime(one);
long time1 = one.getTime();
long time2 = two.getTime();
diff = time2 - time1;
day = diff / (24 * 60 * 60 * 1000);
hour = (diff / (60 * 60 * 1000) - day * 24);
min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
second = diff/1000;
System.out.println("day="+day+" hour="+hour+" min="+min+" ss="+second%60+" SSS="+diff%1000);
String daystr = day%30+"天";
String hourStr = hour%24+"小时";
String minStr = min%60+"分";
String secondStr = second%60+"秒";
if (day!=0){
result = result + daystr;
}
if (hour!=0){
result = result + hourStr;
}
if (min!=0){
result = result + minStr;
}
if (second!=0){
result = result + secondStr;
}
return result;
}
/**
* 统计两个时间的时间差
* two-one
* 相差几秒几毫秒
*/
public static String getDistanceTime(String str1, String str2) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
Date one;
Date two;
long day = 0;//天数差
long hour = 0;//小时数差
long min = 0;//分钟数差
long second=0;//秒数差
long diff=0 ;//毫秒差
String result = "";
try {
final Calendar c = Calendar.getInstance();
c.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
one = df.parse(str1);
c.setTime(one);
two = df.parse(str2);
long time1 = one.getTime();
long time2 = two.getTime();
diff = time2 - time1;
day = diff / (24 * 60 * 60 * 1000);
hour = (diff / (60 * 60 * 1000) - day * 24);
min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
second = diff/1000;
System.out.println("day="+day+" hour="+hour+" min="+min+" ss="+second%60+" SSS="+diff%1000);
String daystr = day%30+"天";
String hourStr = hour%24+"小时";
String minStr = min%60+"分";
String secondStr = second%60+"秒";
if (day!=0){
result = result + daystr;
}
if (hour!=0){
result = result + hourStr;
}
if (min!=0){
result = result + minStr;
}
if (second!=0){
result = result + secondStr;
}
} catch (ParseException e) {
e.printStackTrace();
}
return result;
}
上述方法是根据别人文章改进得来 原本的只是返回了秒和毫秒 而且没做判断 我这边改进了下
贴一下原文地址