本文实例讲述了Java中计算时间差的方法。分享给大家供大家参考。具体如下:
假设现在是2004-03-26 13:31:40
过去是:2004-01-02 11:30:24
要获得两个日期差,差的形式为:XX天XX小时XX分XX秒
方法一:
1
2
3
4
5
6
7
8
9
10
11
|
DateFormat df = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ); try { Date d1 = df.parse( "2004-03-26 13:31:40" ); Date d2 = df.parse( "2004-01-02 11:30:24" ); long diff = d1.getTime() - d2.getTime(); long days = diff / ( 1000 * 60 * 60 * 24 ); } catch (Exception e) { } |
方法二:
1
2
3
4
5
6
7
8
9
|
SimpleDateFormat df = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ); java.util.Date now = df.parse( "2004-03-26 13:31:40" ); java.util.Date date=df.parse( "2004-01-02 11:30:24" ); long l=now.getTime()-date.getTime(); long day=l/( 24 * 60 * 60 * 1000 ); long hour=(l/( 60 * 60 * 1000 )-day* 24 ); long min=((l/( 60 * 1000 ))-day* 24 * 60 -hour* 60 ); long s=(l/ 1000 -day* 24 * 60 * 60 -hour* 60 * 60 -min* 60 ); System.out.println( "" +day+ "天" +hour+ "小时" +min+ "分" +s+ "秒" ); |
方法三:
1
2
3
4
5
6
7
8
9
10
|
SimpleDateFormat dfs = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ); java.util.Date begin=dfs.parse( "2004-01-02 11:30:24" ); java.util.Date end = dfs.parse( "2004-03-26 13:31:40" ); long between=(end.getTime()-begin.getTime())/ 1000 ; //除以1000是为了转换成秒 long day1=between/( 24 * 3600 ); long hour1=between%( 24 * 3600 )/ 3600 ; long minute1=between% 3600 / 60 ; long second1=between% 60 / 60 ; System.out.println( "" +day1+ "天" +hour1+ "小时" +minute1+ "分" +second1+ "秒" ); |
希望本文所述对大家的java程序设计有所帮助。