java 计算两个时间之间的差



java 计算两个时间之间的差

你说的是时间格式,我理解的是Date类型的数据,也就是说这两个数据你能取到 如果不是Date类型的数据,那么谁也不能知道哪个是哪一天的,time1 = "23:50";time2 = "00:20";这样小时数还可以看出来是隔天的,如果time1 = "00:50";time2 = "23:20";这样呢,我们就没办法知道是隔天还是当天的了,所以绝对不能判断出time2是隔天还是当天 所以我觉得这两个数据是Date类型的 
我在程序里是直接定义了两个Date类型的数据:

public static void main(String[] args){ 
Date date1 = new Date(2011-1900,3-1,17,23,50,00); 
Date date2 = new Date(2011-1900,3-1,18,00,20,00); 
SimpleDateFormat format= new SimpleDateFormat("HH:mm"); System.out.println(format.format(date1));//输出23 : 50 System.out.println(format.format(date2));//输出00 : 20 
SimpleDateFormat format2 = new SimpleDateFormat("yyyy/MM/dd/ HH:mm:ss"); System.out.println(format2.format(date1));//输出2011/03/17/ 23:50:00 System.out.println(format2.format(date2));//输出2011/03/18/ 00:20:00 System.out.println((date2.getTime()-date1.getTime())/60/1000 + "分钟");//date2.getTime()得到的是毫秒,所以要除以60*1000 
} 
运行结果: 
23:50 
00:20 
2011/03/17/ 23:50:00 
2011/03/18/ 00:20:00 
30分钟 

事实上真正计算时间差的只有 (date2.getTime()-date1.getTime()) 其他的是为了写明白,Date类型的数据的格式化形式,咱们看到的23:50或者00:20是数据被格式化为HH:mm格式以后的形式,凡是Date类型的数据,都是可以取得一个毫秒单位的绝对数据,两个数据直接的差就是多少毫秒了,然后看我们是想要小时数,分钟数,还是秒数,再除以相应的值 不知道我说清楚了没有呢 如果你的time1和time2是String类型的,而且你也能够自己知道哪个是第一天哪个是第二天的话,那就提取字符串直接减

原文地址:http://zhidao.baidu.com/question/239298907.html?pt=beo123