2010-02-27 59 views
3

我想比较两个日期时间,但我无法让它工作。Android的比较日期时间

public void time() { 
     Calendar c11 = Calendar.getInstance(); 
     c11.add(Calendar.DAY_OF_YEAR, 0); 
     c11.set(Calendar.HOUR_OF_DAY, 9); 
     c11.set(Calendar.MINUTE, 0); 
     c11.set(Calendar.SECOND, 0); 

     Calendar c12 = Calendar.getInstance(); 
     c12.add(Calendar.DAY_OF_YEAR, 0); 
     c12.set(Calendar.HOUR_OF_DAY, 9); 
     c12.set(Calendar.MINUTE, 0); 
     c12.set(Calendar.SECOND, 0); 

     c11.getTime(); 
     c12.getTime(); 
     boolean k = c11.equals(c12); 
     if (k==true) 
     { 
      Toast.makeText(
       getContext(), 
       "Wow these two times are the same!", 
       Toast.LENGTH_LONG).show(); 
     } 
    } 
    } 

回答

3
  1. 2个时间值的毫秒是不同的,因此相等比较会返回false。

  2. 为什么要在两个日历实例中添加0天?那什么都不做。

+0

为什么值不同的C11和C12都设置成一样的吗? – SamB09 2010-02-27 17:11:41

+0

不,他们不一样。就像我刚才所说的那样,毫秒是不同的。您需要将毫秒设置为0。现在毫秒被设置为当你调用Calendar.getInstance()时的当前时间。 – 2010-02-27 17:53:21

+0

对,有没有其他办法可以比较这两个? – SamB09 2010-02-27 18:13:10

1
public void onDateSelected(DateTime dateSelected) { 
    DateTime currentDateTime = new DateTime(); 

    try{ 
     /* If you want to compare only date from DateTime object then, 
      you can use "yyyy-MM-dd" format and split the string from T like: 
      dateSelected.toString().split("T") and use str1[0] to parse */ 

     SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ"); 

     String str1 = dateSelected.toString(); 
     Date selectedDate = formatter.parse(str1); 

     String str2 = currentDateTime.toString(); 
     Date currentDate = formatter.parse(str2); 

     if (selectedDate.compareTo(currentDate)<0) 
     { 
      System.out.println("current date is Greater than my selected date"); 
     } 

    }catch (ParseException e1){ 
     e1.printStackTrace(); 
    } 
} 
+1

我们可以发送格式作为这个函数的参数,使它更通用? public void onDateSelected(DateTime dateSelected,String format)SimpleDateFormat formatter = new SimpleDateFormat(format); ... } – Fahad 2017-11-28 13:10:33

+1

是的,你可以这样做:) – 2017-11-28 13:11:25

+0

谢谢Shujat它会帮助 – Fahad 2017-11-28 13:16:25