两个日期之间的Andr​​oid的差异 [英] Android difference between Two Dates

查看:178
本文介绍了两个日期之间的Andr​​oid的差异的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个日期,如: 字符串日期1 =YYYYMMDDHHMMSS; 字符串日期2 =YYYYMMDDHHMMSS; 我想打印样的区别: 2D 3H45米 我怎么能够? 谢谢!

解决方案

  DateTimeUtils OBJ =新DateTimeUtils();
      的SimpleDateFormat SimpleDateFormat的=
                新的SimpleDateFormat(DD / M / YYYY HH:MM:SS);

      尝试 {

        日期日期1 = simpleDateFormat.parse(2013年10月10号11点三十〇分10秒);
        日期DATE2 = simpleDateFormat.parse(13/10/2013二十时35分55秒);

        obj.printDifference(DATE1,DATE2);

      }赶上(ParseException的E){
        e.printStackTrace();
      }

    }

    // 1分钟=60秒
    // 1小时= 60×60 = 3600
    // 1天= 3600×24 = 86400
    公共无效printDifference(日期的startDate,日期结束日期){

        //毫秒
        长不同的= endDate.getTime() -  startDate.getTime();

        的System.out.println(的startDate:+的startDate);
        的System.out.println(结束日期:+结束日期);
        的System.out.println(不同:+不同的);

        长secondsInMilli = 1000;
        长minutesInMilli = secondsInMilli * 60;
        长hoursInMilli = minutesInMilli * 60;
        长daysInMilli = hoursInMilli * 24;

        长ela​​psedDays =不同/ daysInMilli;
        不同的=不同的%daysInMilli;

        长ela​​psedHours =不同/ hoursInMilli;
        不同的=不同的%hoursInMilli;

        长ela​​psedMinutes =不同/ minutesInMilli;
        不同的=不同的%minutesInMilli;

        长ela​​psedSeconds =不同/ secondsInMilli;

        System.out.printf(
            %d天%d小时%d分钟,%d秒%N,
            elapsedDays,
            elapsedHours,elapsedMinutes,elapsedSeconds);

    }
 

出放为:

 的startDate:周四10月10日11点30分10秒SGT 2013
结束日期:太阳10月13日二十时35分55秒SGT 2013
不同:291945000
3天,9小时,5分钟,45秒
 

i have two date like: String date_1="yyyyMMddHHmmss"; String date_2="yyyyMMddHHmmss"; i want to print the difference like: 2d 3h 45m how can i? thanks!

解决方案

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);

    }

out put is :

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

这篇关于两个日期之间的Andr​​oid的差异的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆