我有一个日期选择器,通过它我在字符串中设置日期,即mDate。 现在设置时间我想检查当前日期和mDate是否相同如果它们相同我想将minTime设置为TimePicker对话框,如果它们不相同,则最小时间不应设置为时间。
如果mDate为空,则时间应显示所有时间。
mEditTxt_Time.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Date date = null;
try {
if(!mDate.equals("")) {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
date = format.parse(mDate);
}
Calendar compareDate = Calendar.getInstance();
compareDate.getTime();
Calendar now = Calendar.getInstance();
TimePickerDialog tpd = TimePickerDialog.newInstance(
PostShippingFragment.this,
now.get(Calendar.HOUR_OF_DAY),
now.get(Calendar.MINUTE),
true
);
if(date!=null) {
if (date.compareTo(compareDate.getTime())) {
tpd.setMinTime(now.get(Calendar.HOUR_OF_DAY), now.get(Calendar.MINUTE), now.get(Calendar.SECOND));
}
}
else {
tpd.setVersion(TimePickerDialog.Version.VERSION_2);
tpd.setAccentColor(ContextCompat.getColor(getActivity(), R.color.colorAccent));
tpd.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialogInterface) {
Log.d("TimePicker", "Dialog was cancelled");
}
});
tpd.show(getFragmentManager(), "Timepickerdialog");
}
}
catch (ParseException e)
{
Log.e("exception",e.toString());
}
}
});
我试过了,但我无法进行比较。
请帮忙。谢谢。
答案 0 :(得分:4)
您可以使用日期的compareTo()
方法。
它将返回整数值,
因此,如果您想检查两个日期是否相同,则需要修改if condition
,如下所示。
if (date.compareTo(compareDate.getTime()) == 0) {
答案 1 :(得分:0)
使用以下任何一种方法来比较日期
方法1
方法2
if(date1.compareTo(date2)>0){
Log.d("Date", "Date1 is after Date2");
}else if(date1.compareTo(date2)<0){
Log.d("Date", "Date1 is before Date2");
}else{
Log.d("Date", "Date1 is equal to Date2");
}
方法3
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(date1);
cal2.setTime(date2);