如何在使用之前检查日期时忽略时间(日期d)

时间:2013-02-23 06:55:08

标签: java date

我知道检查下一个日期的替代方法,但我想知道在使用之前是否有可能忽略检查时间。

我有以下代码

 public void onDateSet(DatePicker view, int year, int monthOfYear,
          int dayOfMonth) {
      try {
      if (fired == true) {
          return;
      } else {
          // first time fired
          fired = true;
      }
      String date = checkDigit(monthOfYear + 1) + "/"
              + checkDigit(dayOfMonth) + "/" + year;
      strDate = date;
      SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");

        Date d=df.parse(strDate);
          Calendar cal = Calendar.getInstance();
          cal.add(Calendar.DATE, 1);
        if(d.before(cal.getTime()))
        {
             etDOB.setText(strDate);
        }
        else
        {
            Toast.makeText(context, "Enter Valid Date Of Birth", Toast.LENGTH_SHORT).show();
             etDOB.setText(" ");
        }
    } catch (ParseException e) {
        e.printStackTrace();
    }

  }

d.before(cal.getTime()) checking date but if the selected Date is next Date than it also checking time

示例: 选择的日期值为feb 24 2013,因此d包含相同的

cal.getTime() also contains feb 24 2013

但是时间为00:00:00 GMT+5:30的第一个日期和第二个时间1:00:00 GMT+5:30会导致条件失败。所以我的问题是如何在检查时间之前忽略。

2 个答案:

答案 0 :(得分:3)

创建日历对象时

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
cal.set(Calendar.Minute, 0);
cal.set(Calendar.Second, 0);

现在你的病情不会失败

答案 1 :(得分:3)

您可以使用cal.getTime()df)从SimpleDateFormat("MM/dd/yyyy")格式化和解析日期,这将消除时间,然后将结果与d进行比较。