我知道检查下一个日期的替代方法,但我想知道在使用之前是否有可能忽略检查时间。
我有以下代码
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
会导致条件失败。所以我的问题是如何在检查时间之前忽略。
答案 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
进行比较。