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

博客介绍了在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;

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值