方法1、Date或者String的compareTo()方法,其值返回1、-1或0
package com.my.test; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateCompare1 { public static void main(String[] args) throws ParseException { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date1 = df.parse("2022-02-16 10:22:01"); Date date2 = df.parse("2022-02-15 10:22:01"); if (date1.compareTo(date2) == 1) { System.out.println("Date1比Date2晚"); } else if (date1.compareTo(date2) == -1) { System.out.println("Date1比Date2早"); } else if (date1.compareTo(date2) == 0) { System.out.println("Date1与Date2相等"); } } }
package com.my.test; public class DateCompare2 { public static void main(String[] args) { String date1 = "2022-02-16 10:22:01"; String date2 = "2022-02-15 10:22:01"; if (date1.compareTo(date2) == 1) { System.out.println("Date1比Date2晚"); } else if (date1.compareTo(date2) == -1) { System.out.println("Date1比Date2早"); } else if (date1.compareTo(date2) == 0) { System.out.println("Date1与Date2相等"); } } }
结果:
方法2、Date的getTime()方法,转换为比较其毫秒值大小
package com.my.test; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateCompare3 { public static void main(String[] args) throws ParseException { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date1 = df.parse("2022-02-16 10:22:01"); Date date2 = df.parse("2022-02-15 10:22:01"); 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相等"); } } }
结果:
方法3、Date的before(), after(), equals()方法
package com.my.test; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateCompare4 { public static void main(String[] args) throws ParseException { DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date1 = df.parse("2022-02-16 10:22:01"); Date date2 = df.parse("2022-02-15 10:22:01"); 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相等"); } } }
结果:
这里推荐方法2,因为方法1与方法3的底层原理也是由方法2实现的。