java计算两个时间段交集的毫秒数

/**
* 计算两时间段交集,注意时间起点和时间终点必须在同一天内
* @param start1 第一时间段 开始时间
* @param end1 第一时间段 结束时间
* @param start2 第二时间段 开始时间
* @param end2 第二时间段 结束时间
* @return 交集的毫秒数
*/
public static long countDateIntersection(Date start1 , Date end1 , Date start2 , Date end2){
SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm:ss");
long s1 = 0;
long s2 = 0;
long e1 = 0;
long e2 = 0;
try {
//标准化到1970-01-01
s1 = sdf2.parse(sdf2.format(start1)).getTime();
s2 = sdf2.parse(sdf2.format(start2)).getTime();
e1 = sdf2.parse(sdf2.format(end1)).getTime();
e2 = sdf2.parse(sdf2.format(end2)).getTime();
} catch (ParseException e) {
e.printStackTrace();
}
if(!(s2>e1||s1>e2)){
long s = s1>s2?s1:s2;
long e = e1 return e-s;
}
return 0;
}

你可能感兴趣的:(java计算两个时间段交集的毫秒数)