详解在java中进行日期时间比较的4种方法
1.Date.compareTo()
java.util.Date提供了在Java中比较两个日期的经典方法compareTo()。
- 如果两个日期相等,则返回值为0。
- 如果Date在date参数之后,则返回值大于0。
- 如果Date在date参数之前,则返回值小于0。
@Test
voidtestDateCompare()throwsParseException{
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
Datedate1=sdf.parse("2009-12-31");
Datedate2=sdf.parse("2019-01-31");
System.out.println("date1:"+sdf.format(date1));
System.out.println("date2:"+sdf.format(date2));
if(date1.compareTo(date2)>0){
System.out.println("Date1时间在Date2之后");
}elseif(date1.compareTo(date2)<0){
System.out.println("Date1时间在Date2之前");
}elseif(date1.compareTo(date2)==0){
System.out.println("Date1时间与Date2相等");
}else{
System.out.println("程序怎么会运行到这里?正常应该不会");
}
}
输出结果:
date1:2009-12-31
date2:2019-01-31
Date1时间在Date2之前
2.Date.before(),Date.after()和Date.equals()
一种语义上比较友好的方法来比较两个java.util.Date
@Test
voidtestDateCompare2()throwsParseException{
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
Datedate1=sdf.parse("2009-12-31");
Datedate2=sdf.parse("2019-01-31");
System.out.println("date1:"+sdf.format(date1));
System.out.println("date2:"+sdf.format(date2));
if(date1.after(date2)){
System.out.println("Date1时间在Date2之后");
}
if(date1.before(date2)){
System.out.println("Date1时间在Date2之前");
}
if(date1.equals(date2)){
System.out.println("Date1时间与Date2相等");
}
}
输出结果
date1:2009-12-31
date2:2019-01-31
Date1时间在Date2之前
3.Calender.before(),Calender.after()和Calender.equals()
使用java.util.Calendar比较两个Date日期
@Test
voidtestDateCompare3()throwsParseException{
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
Datedate1=sdf.parse("2009-12-31");
Datedate2=sdf.parse("2019-01-31");
System.out.println("date1:"+sdf.format(date1));
System.out.println("date2:"+sdf.format(date2));
Calendarcal1=Calendar.getInstance();
Calendarcal2=Calendar.getInstance();
cal1.setTime(date1);
cal2.setTime(date2);
if(cal1.after(cal2)){
System.out.println("Date1时间在Date2之后");
}
if(cal1.before(cal2)){
System.out.println("Date1时间在Date2之前");
}
if(cal1.equals(cal2)){
System.out.println("Date1时间与Date2相等");
}
}
输出结果:
date1:2009-12-31
date2:2019-01-31
Date1时间在Date2之前
4.Java8日期比较方法
在Java8中,可以使用新的isBefore(),isAfter(),isEqual()和compareTo()来比较LocalDate,LocalTime和LocalDateTime。以下示例以比较两个java.time.LocalDate
@Test
voidtestDateCompare4()throwsParseException{
DateTimeFormattersdf=DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDatedate1=LocalDate.of(2009,12,31);
LocalDatedate2=LocalDate.of(2019,1,31);
System.out.println("date1:"+sdf.format(date1));
System.out.println("date2:"+sdf.format(date2));
System.out.println("Is...");
if(date1.isAfter(date2)){
System.out.println("Date1时间在Date2之后");
}
if(date1.isBefore(date2)){
System.out.println("Date1时间在Date2之前");
}
if(date1.isEqual(date2)){
System.out.println("Date1时间与Date2相等");
}
}
输出结果
date1:2009-12-31
date2:2019-01-31
Is...
Date1时间在Date2之前
到此这篇关于详解在java中进行日期时间比较的4种方法的文章就介绍到这了,更多相关java日期时间比较内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!