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。
答案 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