比较在java中不起作用的日期

时间:2017-01-17 12:07:28

标签: java

 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。但是,即使我在isAfter条件中使用if,它也会返回true。

3 个答案:

答案 0 :(得分:3)

这应该可以解决问题

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

答案 1 :(得分:1)

如果参数是一个按字典顺序排列等于该字符串的字符串,则值为0;如果参数是按字典顺序大于此字符串的字符串,则小于0的值;如果参数是一个按字典顺序小于该字符串的字符串,则值大于0。

你需要改变条件

 if(expiry.compareTo(todaydate) <0)

转到此链接,请参阅日期的方法       https://www.tutorialspoint.com/java/util/date_compareto.htm

答案 2 :(得分:1)

除了格式之外,compareTo()返回true,总是日期在参数之后,这是正确的。如果等于它的日期将返回0。

检查文档:http://docs.oracle.com/javase/6/docs/api/java/util/Date.html#compareTo%28java.util.Date%29