У меня есть две строки Datetime следующим образом:
String Date1 = "05-09-2013 10:46:10"
String Date2 = "06-09-2013 10:46:10"
Мне нужно сравнить эти даты и время, и мне нужен результат.
У меня есть две строки Datetime следующим образом:
String Date1 = "05-09-2013 10:46:10"
String Date2 = "06-09-2013 10:46:10"
Мне нужно сравнить эти даты и время, и мне нужен результат.
Вы можете использовать следующее:
public static boolean CheckDates(String startDate, String endDate) {
SimpleDateFormat dfDate = new SimpleDateFormat("dd-MMM-yyyy");
boolean b = false;
try {
if (dfDate.parse(startDate).before(dfDate.parse(endDate))) {
b = true; // If start date is before end date.
} else if (dfDate.parse(startDate).equals(dfDate.parse(endDate))) {
b = true; // If two dates are equal.
} else {
b = false; // If start date is after the end date.
}
} catch (ParseException e) {
e.printStackTrace();
}
return b;
}
String pattern = "dd-MM-yyyy HH:mm:ss";
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
Date one = dateFormat.parse(Date1String);
Date two = dateFormat.parse(Date2String);
Теперь у вас есть два объекта Date
, вы можете их сравнить.
String pattern = "dd-MM-yyyy "; SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); try { Date one = dateFormat.parse("2018-04-11"); Date two = dateFormat.parse("2018-04-10"); Log.e(" Date 1 - Date 2", "" + one.compareTo(two)); } catch (ParseException e) { e.printStackTrace(); }
в one.compareTo(two), если обе даты совпадают, то он вернет 0, если одна больше 1, и -1 в другом случае. @УмарАта
- person other Tall guy; 11.04.2018
Вы можете преобразовать строку в дату следующим образом:
String str = "12/12/1912";
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date date = formatter.parse(str);
И вернемся к строке
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
System.out.println("Date is : " + formatter.format(date));
А у Date есть методы «до» и «после», и их можно сравнивать друг с другом.
Кстати есть еще библиотека под названием Joda, ее тоже можно глянуть.
Попробуйте время Joda для достижения наилучшего результата. Его очень просто использовать.
этот фрагмент объясняет, когда мы сравниваем две даты в строковых форматах, другими словами, до даты не допускаются, когда больше, чем от даты.
private void setTodate() {
// TODO Auto-generated method stub
// Process to get Current Date
int fYear, fMonth, fDay;
final Calendar c = Calendar.getInstance();
fYear = c.get(Calendar.YEAR);
fMonth = c.get(Calendar.MONTH);
fDay = c.get(Calendar.DAY_OF_MONTH);
// Launch Date Picker Dialog
DatePickerDialog dpd = new DatePickerDialog(RemindMeDetails.this,
new DatePickerDialog.OnDateSetListener() {
@SuppressLint("SimpleDateFormat")
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
try{
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
String fdate=recr_edit_Fromdate.getText().toString();
Date dateFD = formatter.parse(fdate);
String tdate=(dayOfMonth + "-"
+ (monthOfYear + 1) + "-" + year).toString();
Date dateTD = formatter.parse(tdate);
if (dateFD.compareTo(dateTD)<=0)
{
/* System.out.println("tdate is Greater than my fdate");
recr_edit_Todate.setText(dayOfMonth + "-"
+ (monthOfYear + 1) + "-" + year);*/
recr_edit_Todate.setText(tdate);
}
else{
showmessage("Alert", "Start date is not greater than End date");
}catch (ParseException e1){
e1.printStackTrace();
}
}
}, fYear, fMonth, fDay);
dpd.show();
}// method closed
Простой код
fun CompareDates(str_date1:String,str_date2:String):Int {
lateinit var date1:Date
lateinit var date2:Date
if (!str_date1.isEmpty()&&!str_date2.isEmpty()) {
val formatter = SimpleDateFormat("dd/MM/yyyy")
date1 = formatter.parse(str_date1)
date2 = formatter.parse(str_date2)
}
return date1.compareTo(date2)
}
Тип возвращаемого значения Int
if (CompareDates() > 0) {
// comes when date1 is higher then date2
} else {
// comes when date2 is higher then date1
}
Попробуй это,
String pattern = "<yourPattern>";
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
try {
Date one = dateFormat.parse(<yourDate>);
Date two = dateFormat.parse(<yourDate>);
}
catch (ParseException e) {}