我需要比较这两个日期,并知道它们是相等的还是<或>
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class App
{
public static void main( String[] args )
{
try{
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.compareTo(date2)>0){
System.out.println("Date1 is after Date2");
}else if(date1.compareTo(date2)<0){
System.out.println("Date1 is before Date2");
}else if(date1.compareTo(date2)==0){
System.out.println("Date1 is equal to Date2");
}else{
System.out.println("How to get here?");
}
}catch(ParseException ex){
ex.printStackTrace();
}
}
}
上面的代码无法正常工作..我试过这种格式MM-dd-YYYYit正在检查oly如果年份是&gt;比它给出的第一个日期>。 例如:我用这种方式比较d1 = 01-07-2014 d2 = 01-06-2014 ..结果应该是d1> d2但它告诉d1等于d2
请帮助我
答案 0 :(得分:2)
Java.util.Date类具有比较日期的before和after方法。
检查date1.before(date2)
和date1.after(date2)
。
答案 1 :(得分:2)
java.util.Date有一个前后方法,完全符合您的目的。
答案 2 :(得分:0)
添加此代码而不是代码。这是在Java中比较Date
的最佳方法。
if(date1.after(date2)){
System.out.println("Date1 is after Date2");
}else if(date1.before(date2)){
System.out.println("Date1 is before Date2");
}else {
System.out.println("Date1 is equal to Date2");
}
答案 3 :(得分:0)
您使用的格式是不正确的模式,象征着年份是'y'而不是'Y'。所以模式应该是正确的“MM-dd-yyyy”而不是“MM-dd-YYYY”
另外你可以使用相同的本地日期,
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import org.junit.Test;
public class LocalDateTest {
@Test
public void compare_local_dates() throws Exception {
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date1 = LocalDate.parse("2009-12-31", pattern);
LocalDate date2 = LocalDate.parse("2010-01-31", pattern);
System.out.println(pattern.format(date1));
System.out.println(pattern.format(date2));
if(date1.isAfter(date2)){
System.out.println("Date1 is after Date2");
}else if(date1.isBefore(date2)){
System.out.println("Date1 is before Date2");
}else if(date1. isEqual(date2)){
System.out.println("Date1 is equal to Date2");
}else{
System.out.println("How to get here?");
}
}
}