Java 如何将日期字符串与当前日期进行比较?
我有一个日期选择器,通过它我可以在字符串中设置日期,即mDate。 现在要设置时间,我要检查当前日期和mDate是否相同如果它们相同,我要将minTime设置为TimePicker对话框,如果它们不相同,则不应将minTime设置为time 如果mDate为空,则时间应显示所有时间Java 如何将日期字符串与当前日期进行比较?,java,android,datetime,java.util.date,date-comparison,Java,Android,Datetime,Java.util.date,Date Comparison,我有一个日期选择器,通过它我可以在字符串中设置日期,即mDate。 现在要设置时间,我要检查当前日期和mDate是否相同如果它们相同,我要将minTime设置为TimePicker对话框,如果它们不相同,则不应将minTime设置为time 如果mDate为空,则时间应显示所有时间 mEditTxt_Time.setOnClickListener(new View.OnClickListener() { @Override public vo
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());
}
}
});
我试过这个,但我不能做比较
请帮忙。谢谢。使用以下任何一种方法来比较日期 方法1
- 日期1.之后(日期2)
- 日期1.之前(日期2)
- 日期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");
}
- 计算1.之后(计算2)
- 计算1.之前(计算2)
- cal1.等于(cal2)
- 日期1.之后(日期2)
- 日期1.之前(日期2)
- 日期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");
}
- 计算1.之后(计算2)
- 计算1.之前(计算2)
- cal1.等于(cal2)
compareTo()
日期方法
它将返回一个整数值
- 如果参数日期(compareDate)与此日期相等,则返回值0李>
- 如果此日期早于日期参数(比较),则返回小于0的值李>
- 如果此日期在日期之后,则返回大于0的值 参数(比较)
if (date.compareTo(compareDate.getTime()) == 0) {
您可以使用compareTo()
日期方法
它将返回一个整数值
- 如果参数日期(compareDate)与此日期相等,则返回值0李>
- 如果此日期早于日期参数(比较),则返回小于0的值李>
- 如果此日期在日期之后,则返回大于0的值
参数(比较)
因此,如果要检查两个日期是否相同,则需要按如下所示修改条件
if (date.compareTo(compareDate.getTime()) == 0) {
date类的equals方法如何?在发布代码时,最好将其最小化-在您的问题中,至少有50%的代码与您的问题完全无关。阅读本文,您可以使用此处提供的简单解决方案date类的equals方法如何?发布代码时,将其最小化始终是一个好主意-在您的问题中,至少有50%的代码与您的问题完全无关。每种方法的优点是什么?你能帮我们挑选吗?很好。每种方法的优点是什么?你能帮我们挑选吗?