Java计算两时间相差日期,返回HH:mm 小时分钟格式


原理其实很简单,就是根据两个日期相差的天数,小时数,分钟数,秒数计算之后转换成HH:mm格式,废话不多说,直接上代码

public static String timeSubtraction(String time1, String time2) throws ParseException {
/**

*@description time2 是大的时间

*@param [time1, time2]

*@return java.lang.String

*/
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//24小时制
long newTime1 = simpleDateFormat.parse(time2).getTime();
long newTime2 = simpleDateFormat.parse(time1).getTime();
Long result = newTime1 - newTime2; //获取两时间相差的毫秒数
long nd = 1000 * 24 * 60 * 60;
long nh = 1000 * 60 * 60;
long nm = 1000 * 60;
long hour = result % nd / nh; //获取相差的小时数
long min = result % nd % nh / nm; //获取相差的分钟数
long day = result / nd;

SimpleDateFormat formatter = new SimpleDateFormat("HH:mm");//初始化Formatter的转换格式。
long hMiles = hour * 3600000; //小时数转换成毫秒
long mMiles = min * 60000; //分钟数转换成毫秒
long resulMiles = (hMiles + mMiles);

   //下面这段很重要 ,计算之后设置时区,不然会差几小时
formatter.setTimeZone(TimeZone.getTimeZone("GMT+00:00"));
String resultFormat = formatter.format(resulMiles);
  //我这段是在一天内计算的 如果大于一天 就把下面的 day*24加到小时上就可以了
return resultFormat + "," + day;
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM