Java 比较不同模式的日期
比较两个日期的最简单方法,如果我有相同的模式Java 比较不同模式的日期,java,compare,date-format,Java,Compare,Date Format,比较两个日期的最简单方法,如果我有相同的模式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date1 = sdf.parse("2009-12-31"); Date date2 = sdf.parse("2010-01-31"); System.out.println(sdf.format(date1)); System.out.println(s
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf.parse("2009-12-31");
Date date2 = sdf.parse("2010-01-31");
System.out.println(sdf.format(date1));
System.out.println(sdf.format(date2));
if(date1.after(date2)){
System.out.println("Date1 is after Date2");
}
if(date1.before(date2)){
System.out.println("Date1 is before Date2");
}
if(date1.equals(date2)){
System.out.println("Date1 is equal Date2");
}
想要比较两个有不同模式的日期
例如
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf.parse("2009-12-31");
SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy");
Date date2 = sdf2.parse("12/12/2012");
我怎样才能做同样的事情呢?你可以用同样的方法比较日期
SimpleDataFormat
只是一种以不同格式打印(或解析)日期的方法。Java理解它们,并且可以将它们作为日期进行比较,无论您如何格式化它们 即使在解析了两种不同格式的两个不同日期之后,parse()
方法的输出在这两种情况下都将是一个标准的java.util.Date
对象。所以你可以像往常一样比较它们
解析它们的格式无关紧要,因为在这两种情况下,最后有2个
java.util.Date
对象,并且比较它们在所有情况下都是相同的。您将sdf替换为sdf2
更改此代码后,它将工作:
SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy");
Date date2 = sdf2.parse("12/12/2012");
您使用了错误的参考sdf而不是sdf2您得到了
date1
和date2
-只需像以前一样比较它们。就这样!我相信,如果你已经有了两个有效的日期实例,那么before,equals,after将起作用。这并不取决于这些实例是如何构造的。