java日期比较的四种方法
package 日期比较;
import org.junit.Test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
public class DateCompare {
@Test
public void test1() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf.parse("2009-01-01");
Date date2 = sdf.parse("2019-01-01");
System.out.println(date1);
System.out.println(date2);
if(date1.compareTo(date2) >0){
System.out.println("Date1 时间在 Date2 之后");
}else if (date1.compareTo(date2) < 0) {
System.out.println("Date1 时间在 Date2 之前");
} else if (date1.compareTo(date2) == 0) {
System.out.println("Date1 时间与 Date2 相等");
} else {
System.out.println("程序怎么会运行到这里?正常应该不会");
}
}
@Test
public void test2() throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = format.parse("2010-10-10");
Date date2= format.parse("2020-10-10");
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(date1);
c2.setTime(date2);
if(c1.equals(c2)){
System.out.println("两个时间相等");
} else if(c1.after(c2)){
System.out.println("date1 在 date2 的后面");
}else if(c1.before(c2)){
System.out.println("date1 在 date2 的前面");
}else{
System.out.println("杨峰王八蛋");
}
}
@Test
public void test3() throws Exception{
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = format.parse("2010-10-10");
Date date2 = format.parse("2020-10-10");
if(date1.after(date2)){
System.out.println("date1 在 date2 后面");
}else if(date1.before(date2)){
System.out.println("date1 在 date2 前面");
}else if(date1.equals(date2)){
System.out.println("date1 与 date2 的时间一样");
}
}
@Test
public void test4() throws Exception{
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date1 = LocalDate.of(2020, 11, 11);
LocalDate date2 = LocalDate.of(2010, 11, 11);
System.out.println(date1);
System.out.println(date2);
String date11 = formatter.format(date1);
String date22 = formatter.format(date2);
System.out.println(date11);
System.out.println(date22);
if(date1.compareTo(date2) > 0){
System.out.println("date1 时间在 date2 的后面");
}else if(date1.compareTo(date2) == 0){
System.out.println("date1 与 date2 的时间相等");
}else if(date1.compareTo(date2) < 0){
System.out.println("date1 时间在 date2 的前面");
}else{
System.out.println("你觉得会运行到这个吗");
}
}
}