【发布时间】:2017-06-13 08:02:35
【问题描述】:
我有一个日期选择器,我通过它设置字符串中的日期,即 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());
}
}
});
我试过了,但我无法进行比较。
请帮忙。谢谢。
【问题讨论】:
-
日期类的equals方法呢?
-
发布代码时,尽量减少代码总是一个好主意 - 在您的问题中,至少 50% 的代码与您的问题完全无关。
-
您可以使用这里提供的简单解决方案stackoverflow.com/a/53963322/3056868
标签: java android datetime java.util.date date-comparison