java代码计算2个时间差,精确到 天、月、日、时、分、秒、毫秒

本文介绍了一个Java方法,用于计算两个指定时间之间的差距,并以天数、小时数、分钟数和秒数的形式返回结果。该方法接受两个字符串形式的时间参数及一个日期格式模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


/**
* 两个时间相差距离多少天多少小时多少分多少秒
* @param str1 时间参数 1 格式:2016-06-22 18:21:20
* @param str2 时间参数 2 格式:2016-06-22 17:21:20
* @param pattern 日期格式 yyyy-MM-dd HH:mm:ss 毫秒(yyyy-MM-dd HH:mm:ss.SSS)
* @return String 返回值为:xx天xx小时xx分xx秒
*/
public static String getDistanceTime(String str1, String str2, String pattern) {
DateFormat df = new SimpleDateFormat(pattern);
Date one;
Date two;
long day = 0;
long hour = 0;
long min = 0;
long sec = 0;
long ms = 0;
try {
one = df.parse(str1);
two = df.parse(str2);
long time1 = one.getTime();
long time2 = two.getTime();
long diff ;
if(time1 < time2) {
diff = time2 - time1;
} else {
diff = time1 - time2;
}
day = diff / (24 * 60 * 60 * 1000);
hour = (diff / (60 * 60 * 1000) - day * 24);
min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
sec = (diff/1000-day*24*60*60-hour*60*60-min*60);
//ms = (diff - day * 24 * 60 * 60 * 1000 - hour * 60 * 60 * 1000 - min * 60 * 1000 - sec * 1000);
} catch (ParseException e) {
e.printStackTrace();
}
return day + "天" + hour + "小时" + min + "分" + sec + "秒";
//return day + "天" + hour + "小时" + min + "分" + sec + "秒" + ms + "毫秒";
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值