Date.before()、Date.after()、Date.equals()
获取本地时间和指定时间进行比较,此处使用了date时间比较的after
方法,代码如下
public static void main(String[] args) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
// 获取当天时间的第二天
Calendar instance = Calendar.getInstance();
instance.setTime(new Date());
instance.add(Calendar.DATE, 1);
String format = simpleDateFormat.format(instance.getTime());
Date now = simpleDateFormat.parse(format);
String string = "2020-11-01";
Date parse = simpleDateFormat.parse(string);
System.out.println(now.after(parse));
}
控制台打印输出 false
date1.before(date2) 此方法判断date1时间在date2时间之前,结果返回类型是boolean类型
date1.after(date2) 此方法判断date1时间在date2时间之后,结果返回类型是boolean类型
date1.equals(date2) 此方法判断date1时间和date2时间是否相等,结果返回类型是boolean类型
Date.compareTo()
java.util.Date提供了在java中比较两个日期的经典方法compareTo()
如果两个日期相等,则返回值是0
如果date1在date2时间之后,则返回值大于0
如果date1在date2时间之前,则返回值小于0
public static void main(String[] args) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = simpleDateFormat.parse("2020-10-15");
Date date2 = simpleDateFormat.parse("2020-10-30");
System.out.println(date1.compareTo(date2));
}
控制台打印输出 -1
Calender.before()、Calender.after()、Calender.equals()
使用java.util.Calendar比较两个Date日期
public static void main(String[] args) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = simpleDateFormat.parse("2020-10-15");
Date date2 = simpleDateFormat.parse("2020-10-30");
Calendar instance1 = Calendar.getInstance();
Calendar instance2 = Calendar.getInstance();
instance1.setTime(date1);
instance2.setTime(date2);
System.out.println(instance1.after(instance2));
}
控制台打印输出 false
java8新增日期比较方法
在java8中,可以使用新的isBefore()、isAfter()、isEqual()、compareTo()来比较LocalDate、LocalTime、LocalDateTime
无法比较Date
public static void main(String[] args) throws ParseException {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date1 = LocalDate.of(2020, 10, 15);
LocalDate date2 = LocalDate.of(2020, 10, 30);
dateTimeFormatter.format(date1);
dateTimeFormatter.format(date2);
System.out.println(date1.isAfter(date2));
}
控制台打印输出 false