本文实例讲述了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程序设计有所帮助。