2017-01-17 51 views
0
public static void main(String [] args){ 
    String date = "01/08/2017"; 

    Date todaydate = new Date(); 

    SimpleDateFormat myFormat = new SimpleDateFormat("dd/mm/yyyy"); 
    try { 
     Date expiry = myFormat.parse(date); 

     if(expiry.compareTo(todaydate) >0){ 
      System.out.println("false"); 
     } 

     else{ 
      System.out.println("true"); 
     } 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
} 

我在比較日期01/08/2017到當前日期。它應該返回false。但是,即使在if條件下使用isAfter,它也會返回true。比較不適用於java的日期

+3

您的日期格式是錯誤的。使用'dd/MM/yyyy'而不是'dd/mm/yyyy'。小寫'mm'表示**分鐘**,而不是幾個月。查看SimpleDateFormat的[API文檔](http://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html)。 – Jesper

回答

3

這應該做的伎倆

SimpleDateFormat myFormat = new SimpleDateFormat("dd/MM/yyyy"); 
+0

是的。現在它正在工作。 – Muzogeek

+0

@Muzogeek如果您的問題得到解決,請接受答案:-) –

1

值0,如果參數是字符串字典順序等於該字符串;如果參數是按字典順序大於此字符串的字符串,則值小於0;如果參數是按字典順序小於此字符串的字符串,則值大於0。

需要

if(expiry.compareTo(todaydate) <0) 

轉到更改條件這個鏈接N參看日期的方法 https://www.tutorialspoint.com/java/util/date_compareto.htm

+0

當我們比較日期時,談到字符串的詞彙順序有點混淆...... –