java 怎么计算2个时间相差时分秒
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 怎么计算2个时间相差时分秒相关的知识,希望对你有一定的参考价值。
/*** 根据指定类型计算两个日期相差的时间<br>
* eg. dateDiff(birth, today, Calendar.MONTH) 孩子的月龄
* @param sDate 开始时间
* @param eDate 结束时间
* @param diffType 日期类型
* @return 根据 diffType计算的 eDate - sDate 时差
*/
public static Long dateDiff(Date sDate, Date eDate, int diffType)
java.util.Calendar calst = java.util.Calendar.getInstance();
java.util.Calendar caled = java.util.Calendar.getInstance();
calst.setTime(sDate);
caled.setTime(eDate);
long diffMill = caled.getTime().getTime() - calst.getTime().getTime();
long rtn = 0;
switch (diffType)
case Calendar.MILLISECOND:
rtn = diffMill;
break;
case Calendar.SECOND:
rtn = diffMill / 1000;
break;
case Calendar.MINUTE:
rtn = diffMill / 1000 / 60;
break;
case Calendar.HOUR:
rtn = diffMill / 1000 / 3600;
break;
case Calendar.DATE:
rtn = diffMill / 1000 / 60 / 60 / 24;
break;
case Calendar.MONTH:
rtn = diffMill / 1000 / 60 / 60 / 24 / 12;
break;
case Calendar.YEAR:
rtn = diffMill / 1000 / 60 / 60 / 24 / 365;
break;
return rtn;
如图所示,这是一个综合返回两个时间差值的代码
Date two = new Date();
long three = one.getTime()-two.getTime();
System.out.println(three); 参考技术B 请用getTime()获得秒数
Date a,b;
a = new Date();
b = new Date();
b.getTime() - a.getTime();
Java计算年月日时分秒时间差(两个时间相减)
//测试主方法 public static void main(String[] args) { Date currentTime = df.parse("2004-03-26 13:31:40"); //当前系统时间 Date firstTime = df.parse("2004-01-02 11:30:24"); //查询的数据时间 String str=getTime(currentTime ,firstTime ); System.out.println("获取的年月日时分秒时间差为:"+str); } //获取时间差方法 public static String getTime(Date currentTime,Date firstTime){ long diff = currentTime.getTime() - firstTime.getTime();//这样得到的差值是微秒级别 Calendar currentTimes =dataToCalendar(currentTime);//当前系统时间转Calendar类型 Calendar firstTimes =dataToCalendar(firstTime);//查询的数据时间转Calendar类型 int year = currentTimes.get(Calendar.YEAR) - firstTimes.get(Calendar.YEAR);//获取年 int month = currentTimes.get(Calendar.MONTH) - firstTimes.get(Calendar.MONTH); int day = currentTimes.get(Calendar.DAY_OF_MONTH) - firstTimes.get(Calendar.DAY_OF_MONTH); if (day < 0) { month -= 1; currentTimes.add(Calendar.MONTH, -1); day = day + currentTimes.getActualMaximum(Calendar.DAY_OF_MONTH);//获取日 } if (month < 0) { month = (month + 12) % 12;//获取月 year--; } long days = diff / (1000 * 60 * 60 * 24); long hours = (diff-days*(1000 * 60 * 60 * 24))/(1000* 60 * 60); //获取时 long minutes = (diff-days*(1000 * 60 * 60 * 24)-hours*(1000* 60 * 60))/(1000* 60); //获取分钟 long s=(diff/1000-days*24*60*60-hours*60*60-minutes*60);//获取秒 String CountTime=""+"year"+"年"+month+"月"+day+"天"+hours+"小时"+minutes+"分"+s+"秒"; return CountTime; } //Date类型转Calendar类型 public static Calendar dataToCalendar(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar; }
以上是关于java 怎么计算2个时间相差时分秒的主要内容,如果未能解决你的问题,请参考以下文章
Java 计算两个时间相差多少分钟(代码包括相差天数和时分秒)