【问题标题】:Compare two date and get the result in android比较两个日期并在android中得到结果
【发布时间】:2014-08-12 03:08:39
【问题描述】:

首先,有一个比较的基准日期

日期 baseDate = dateFormat.parse("2013-01-01");

还有一个事件日期列表可以与基准日期进行比较,例如 日期 date2 = dateFormat.parse("2013-01-02");

所以,我想得到比较结果(以天为单位),在本例中为 1。

如果

日期 date3 = dateFormat.parse("2012-12-31");

那么,结果应该是-1

我怎样才能做到这一点?试过baseDate .compareTo(date3),但它只返回真/假。感谢您的帮助

【问题讨论】:

标签: android date compare


【解决方案1】:

另一种选择是在您的Date 对象中调用java.util.Date.getTime(),它以毫秒值的形式返回Date。你可以让他们计算(date2.getTime() - baseDate.getTime()) / 24*60*60*1000。

参考:https://developer.android.com/reference/java/util/Date.html#getTime()

【讨论】:

  • 24*60*60*1000 好像不能转换成日期,我现在检查一下,谢谢
  • 如果您将上述等式转换为int,您应该知道两个日期之间的天数。正数或负数将表示date2 是在baseDate 之后(正)还是之前(负)。
【解决方案2】:
    String dateStart = "01/14/2014";
    String dateStop = "01/13/2014";

    Date d1 = null;
    Date d2 = null;
    SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy");

    try {
        d1 = format.parse(dateStart);
        d2 = format.parse(dateStop);

        //in milliseconds
        long diff = d2.getTime() - d1.getTime();

        long diffDays = diff / (24 * 60 * 60 * 1000);

        System.out.print(diffDays + " days, ");
    }
    catch (Exception e){

    }

【讨论】:

    【解决方案3】:

    java.util.Date 有一个符合Comparable 接口的compareTo() 函数。此方法返回一个整数。

    【讨论】:

      猜你喜欢
      • 2018-10-23
      • 1970-01-01
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多