strings android android-date

strings - ¿Comparar fecha y hora de dos cadenas en Android?



compare strings android (9)

Prueba el tiempo de Joda para obtener el mejor resultado. Es muy simple de usar.

Tengo dos cadenas de tiempo de la siguiente manera:

String Date1 = "05-09-2013 10:46:10" String Date2 = "06-09-2013 10:46:10"

Necesito comparar estas fechas y necesito resultados.


Prueba esto,

String pattern = "<yourPattern>"; SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); try { Date one = dateFormat.parse(<yourDate>); Date two = dateFormat.parse(<yourDate>); } catch (ParseException e) {}


Puedes convertir String a Date de esta manera:

String str = "12/12/1912"; SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); Date date = formatter.parse(str);

Y de vuelta a String.

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); System.out.println("Date is : " + formatter.format(date));

Y Date tiene métodos de antes y después y se pueden comparar entre sí.

Por cierto, también hay una biblioteca llamada Joda, también puedes consultarla.


Puedes usar lo siguiente:

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; }


este fragmento de código explica cuando comparamos dos fechas en formatos de cadena, en otras palabras, hasta la fecha no está permitido cuando es mayor que desde la fecha.

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


public static String CompareDates(String date1, String date2) { try{ String pattern = "dd-MMM-yyyy HH:mm:ss"; SimpleDateFormat formatter = new SimpleDateFormat(pattern); Date Date1 = formatter.parse(date1); Date Date2 = formatter.parse(date2); if (Date1 != null && Date2 != null) { if (Date1 .equals(Date2 )) { //Both dates are equal. } else{ //both date are not equal("use after and before to check occurrence of dates") } }catch (Exception e1){ e1.printStackTrace(); } }


try{ SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); String str1 = "12/10/2013"; Date date1 = formatter.parse(str1); String str2 = "13/10/2013"; Date date2 = formatter.parse(str2); if (date1.compareTo(date2)<0) { System.out.println("date2 is Greater than my date1"); } }catch (ParseException e1){ e1.printStackTrace(); }


SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date1 = sdf.parse("2010-02-22"); Date date2 = sdf.parse("2010-03-23"); int i = date1.compareTo(date2); switch (i){ case -1: //date1<date2 = -1 return sDate2; case 1: //date1>date2 = 1 return sDate1; case 0: //date1==date2= 0 default: return sDate2; } } catch (ParseException e) { return sDate1; }


String pattern = "dd-MM-yyyy HH:mm:ss"; SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); Date one = dateFormat.parse(Date1String); Date two = dateFormat.parse(Date2String);

Ahora tienes dos objetos Date , puedes compararlos.