JAVA 日期时间比较

时间:2025-05-16 09:11:15

众所周知,作为程序员时间比较在程序中是比较常见的,你是不是也时常不知道该选择什么方法进行合理的比较大小呢?接下来我们来聊一聊Date类型和LocalDateTime(LocalDate)类型时间的比较方法,希望对大家有所帮助。

1.getTime()

Date类型特有,将时间转化成时间毫秒值(long类型),数字类型直接比较大小

public static void main(String[] args) throws Exception{
 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
 String stringTime = "2021-09-17 16:13:32";
 String stringTime2 = "2021-08-17 16:13:32";
 Date date = (stringTime);
 Date date2 = (stringTime2);
 long time = ();
 long time2 = ();
 ("time大于time2:" + (time > time2));
}

2.compareTo

compareTo() 方法用于将 Number 对象与方法的参数进行比较。可用于比较 Byte, Double, Integer, Float, Long 或 Short 等。该方法用于两个相同数据类型的比较。

public static void main(String[] args) throws Exception{
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    String stringTime = "2021-09-17 16:13:32";
    String stringTime2 = "2021-08-17 16:13:32";
    Date date = (stringTime);
    Date date2 = (stringTime2);
    ("time大于time2:" + ((date2) > 0));
}
 
public static void main(String[] args) throws Exception{
    LocalDateTime time1 = ();
    LocalDateTime time2 =  (2021,9,17,16,33,12);
    ("time大于time2:" + ((time2) > 0));
}
 

3.after(before同理)

方法用于检查作为参数传递的日期是否在此实例之后。它返回一个显示相同值的布尔值。

public static void main1(String[] args) {
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    String stringTime = "2021-09-17 16:13:32";
    String stringTime2 = "2021-08-17 16:13:32";
    Date date = (stringTime);
    Date date2 = (stringTime2);
    ("time大于time2:" + ((date2)));
}
 
public static void main(String[] args)  {
    LocalDateTime time1 = ();
    LocalDateTime time2 =  (2021,9,17,16,33,12);
    ("time大于time2:" + ((time2)));
}
 

常用的时间比较基本上就是上述几个方法,欢迎大家补充。

LocalDateTime从jdk1.8引入以后被越来越多的开发者使用,当然其功能相比于Date增加了很多便捷的方法,使用起来更加方便。