java获取两个时间差并格式化处理

[引用链接](https://blog.csdn.net/xujiangdong1992/article/details/79006531
如果是String类型,需要转成date类型:
如:

String startTime = "2018-01-01 10:30:30";
String endTime = "2018-01-08 11:45:45";
//看自己的时间格式选择对应的转换对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
//转换成date类型
Date start = sdf.parse(startTime);
Date end = sdf.parse(endTime);
//获取毫秒数
Long startLong = start.getTime();
Long endLong = end.getTime();
//计算时间差,单位毫秒
Long ms = endLong-startLong;
//时间差转换为 \天\时\分\秒  
String time = longTimeToDay(ms);


//转换函数,可以封装成公用方法
public static String longTimeToDay(Long ms){
        Integer ss = 1000;  
        Integer mi = ss * 60;  
        Integer hh = mi * 60;  
        Integer dd = hh * 24;  

        Long day = ms / dd;  
        Long hour = (ms - day * dd) / hh;  
        Long minute = (ms - day * dd - hour * hh) / mi;  
        Long second = (ms - day * dd - hour * hh - minute * mi) / ss;  
        Long milliSecond = ms - day * dd - hour * hh - minute * mi - second * ss;  

        StringBuffer sb = new StringBuffer();  
        if(day > 0) {  
            sb.append(day+"天");  
        }  
        if(hour > 0) {  
            sb.append(hour+"小时");  
        }  
        if(minute > 0) {  
            sb.append(minute+"分");  
        }  
        if(second > 0) {  
            sb.append(second+"秒");  
        }  
        if(milliSecond > 0) {  
            sb.append(milliSecond+"毫秒");  
        }  
        return sb.toString();  
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容