比较android中的两个字符串日期和时间?

比较android中的两个字符串日期和时间?,android,android-date,Android,Android Date,我有两个字符串Datetime,如下所示: String Date1 = "05-09-2013 10:46:10" String Date2 = "06-09-2013 10:46:10" 我需要比较这些日期时间,我需要结果。试试这个 String pattern = "<yourPattern>"; SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); try { Date one = dateFormat.

我有两个字符串Datetime,如下所示:

String Date1 = "05-09-2013 10:46:10"
String Date2 = "06-09-2013 10:46:10"
我需要比较这些日期时间,我需要结果。

试试这个

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

}
catch (ParseException e) {}
字符串模式=”;
SimpleDataFormat dateFormat=新的SimpleDataFormat(模式);
试一试{
dateone=dateFormat.parse();
Date二=dateFormat.parse();
}
捕获(异常解析){}

您可以像这样将字符串转换为日期:

    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));
日期有前后两种方法,可以相互比较

顺便说一句,还有一个叫做Joda的图书馆,你也可以去看看

String pattern = "dd-MM-yyyy HH:mm:ss";
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
Date one = dateFormat.parse(Date1String);
Date two = dateFormat.parse(Date2String);
现在您有了两个
Date
对象,您可以对它们进行比较。

尝试获得最佳结果。使用起来非常简单。

试试看{
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();
    }
SimpleDataFormat格式化程序=新的SimpleDataFormat(“dd/MM/yyyy”); 字符串str1=“12/10/2013”; Date date1=格式化程序.parse(str1); 字符串str2=“13/10/2013”; Date date2=格式化程序.parse(str2); 如果(日期1)与(日期2)相比,则可以使用以下命令:

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

这段代码解释了当我们以字符串格式比较两个日期时,换句话说,当大于起始日期时,不允许使用截止日期

 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
private void setTodate(){
//TODO自动生成的方法存根
//获取当前日期的过程
国际财务年度、月、日;
最终日历c=Calendar.getInstance();
fYear=c.get(日历年);
fmmonth=c.get(日历月);
fDay=c.get(日历日期,每月的第天);
//启动日期选择器对话框
DatePickerDialog dpd=新的DatePickerDialog(提醒细节.this,
新建DatePickerDialog.OnDateSetListener(){
@SuppressLint(“SimpleDataFormat”)
@凌驾
公共无效onDateSet(日期选择器视图,整数年,
int monthOfYear,int dayOfMonth){
试试{
SimpleDataFormat格式化程序=新的SimpleDataFormat(“dd-MM-yyyy”);
字符串fdate=recr_edit_Fromdate.getText().toString();
Date dateFD=格式化程序.parse(fdate);
字符串tdate=(dayOfMonth+“-”
+(monthOfYear+1)+“-”+年);
Date-dateTD=formatter.parse(tdate);
如果(dateFD.compareTo(dateTD)
SimpleDateFormat sdf=新的SimpleDateFormat(“yyy-MM-dd”);
日期1=sdf.parse(“2010-02-22”);
日期2=sdf.parse(“2010-03-23”);
int i=日期1。与(日期2)相比;
开关(一){
案例-1://date1date2=1
返回sDate1;
案例0://date1==date2=0
违约:
返回sDate2;
}
}捕获(解析异常){
返回sDate1;
}

简单代码

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)
}
if (CompareDates() > 0) {
 // comes when date1 is higher then date2
} else {
 // comes when date2 is higher then date1
}
Int返回类型

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)
}
if (CompareDates() > 0) {
 // comes when date1 is higher then date2
} else {
 // comes when date2 is higher then date1
}

您好,如果它解决了您的问题,请您将答案标记为已接受,好吗?
String pattern=“dd-MM-yyyy”;SimpleDateFormat-dateFormat=new SimpleDateFormat(pattern);尝试{Date one=dateFormat.parse(“2018-04-11”);Date two=dateFormat.parse(“2018-04-10”);Log.e(“Date 1-Date-Date-2”、“+one.compareTo(two”);}catch(异常解析e){e.printStackTrace();}
在一个中。compareTo(两个)如果两个日期相同,那么如果一个大于1,它将返回0,在另一个情况下返回-1。@umarataca请在答案中添加注释,使其完全可以理解