Java使用以下三种方法来比较两个日期:
- 使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。
- 使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。
- 使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
*
* @version 2018/12/4 12:41
*/
public class app {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date1 = sdf.parse("2018-12-13 23:59:59");
Date date2 = sdf.parse("2018-12-14 23:59:59");
test1(date1,date2);
test2(date1,date2);
test3(date1,date2);
}
//日期比较-->使用方法 before(),after() 和 equals()
public static void test1(Date date1,Date date2) {
if (date1.before(date2)) {
System.out.println("date1" + "在" + "date2" + "之前");
} else if (date1.after(date2)) {
System.out.println("date1" + "在" + "date2" + "之后");
} else {
System.out.println("date1" + "和" + "date2" + "相等");
}
}
//日期比较-->使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。
public static void test2(Date date1,Date date2) {
if (date1.getTime() < date2.getTime()) {
System.out.println("date1" + "在" + "date2" + "之前");
} else if (date1.getTime() > date2.getTime()) {
System.out.println("date1" + "在" + "date2" + "之后");
} else {
System.out.println("date1" + "和" + "date2" + "相等");
}
}
//日期比较-->使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。
//两者相等时候返回0。调用对象在指定日期之前则返回负数。调用对象在指定日期之后则返回正数。
public static void test3(Date date1,Date date2) {
int i = date1.compareTo(date2);
if (i < 0) {
System.out.println("date1" + "在" + "date2" + "之前");
} else if (i > 0) {
System.out.println("date1" + "在" + "date2" + "之后");
} else {
System.out.println("date1" + "和" + "date2" + "相等");
}
}