IT源码网

Android 两个日期之间的差异

xing901022 2025年01月19日 程序员 21 0

我有两个日期,例如:

String date_1="yyyyMMddHHmmss"; 
String date_2="yyyyMMddHHmmss"; 

我想打印差异,例如:

2d 3h 45m 

我怎样才能做到这一点?谢谢!

请您参考如下方法:

DateTimeUtils obj = new DateTimeUtils(); 
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/M/yyyy hh:mm:ss"); 
 
try { 
    Date date1 = simpleDateFormat.parse("10/10/2013 11:30:10"); 
    Date date2 = simpleDateFormat.parse("13/10/2013 20:35:55"); 
 
    obj.printDifference(date1, date2); 
 
} catch (ParseException e) { 
    e.printStackTrace(); 
} 
 
//1 minute = 60 seconds 
//1 hour = 60 x 60 = 3600 
//1 day = 3600 x 24 = 86400 
public void printDifference(Date startDate, Date endDate) {  
    //milliseconds 
    long different = endDate.getTime() - startDate.getTime(); 
 
    System.out.println("startDate : " + startDate); 
    System.out.println("endDate : "+ endDate); 
    System.out.println("different : " + different); 
 
    long secondsInMilli = 1000; 
    long minutesInMilli = secondsInMilli * 60; 
    long hoursInMilli = minutesInMilli * 60; 
    long daysInMilli = hoursInMilli * 24; 
 
    long elapsedDays = different / daysInMilli; 
    different = different % daysInMilli; 
 
    long elapsedHours = different / hoursInMilli; 
    different = different % hoursInMilli; 
 
    long elapsedMinutes = different / minutesInMilli; 
    different = different % minutesInMilli; 
 
    long elapsedSeconds = different / secondsInMilli; 
 
    System.out.printf( 
        "%d days, %d hours, %d minutes, %d seconds%n",  
        elapsedDays, elapsedHours, elapsedMinutes, elapsedSeconds); 
} 

输出是:

startDate : Thu Oct 10 11:30:10 SGT 2013 
endDate : Sun Oct 13 20:35:55 SGT 2013 
different : 291945000 
3 days, 9 hours, 5 minutes, 45 seconds 


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!