JAVA 日期时间比较

众所周知,作为程序员时间比较在程序中是比较常见的,你是不是也时常不知道该选择什么方法进行合理的比较大小呢?接下来我们来聊一聊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 = format.parse(stringTime);
 Date date2 = format.parse(stringTime2);
 long time = date.getTime();
 long time2 = date2.getTime();
 System.out.println("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 = format.parse(stringTime);
    Date date2 = format.parse(stringTime2);
    System.out.println("time大于time2:" + (date.compareTo(date2) > 0));
}
 
public static void main(String[] args) throws Exception{
    LocalDateTime time1 = LocalDateTime.now();
    LocalDateTime time2 =  LocalDateTime.of(2021,9,17,16,33,12);
    System.out.println("time大于time2:" + (time1.compareTo(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 = format.parse(stringTime);
    Date date2 = format.parse(stringTime2);
    System.out.println("time大于time2:" + (date.after(date2)));
}
 
public static void main(String[] args)  {
    LocalDateTime time1 = LocalDateTime.now();
    LocalDateTime time2 =  LocalDateTime.of(2021,9,17,16,33,12);
    System.out.println("time大于time2:" + (time1.isAfter(time2)));
}
 

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

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

Java中可以使用`java.util.Date`类和`java.time.LocalDateTime`类来进行日期时间比较。 使用`java.util.Date`类的比较方法是通过`compareTo()`方法实现的,该方法会返回一个整数值,用于表示两个日期时间的先后顺序。如果返回值为0,则表示两个日期时间相等;如果返回值小于0,则表示当前日期时间比较日期时间之前;如果返回值大于0,则表示当前日期时间比较日期时间之后。 下面是使用`java.util.Date`类比较两个日期时间的示例代码: ```java Date date1 = new Date(); Date date2 = new Date(); int result = date1.compareTo(date2); if(result == 0) { System.out.println("日期时间相等"); } else if(result < 0) { System.out.println("date1在date2之前"); } else { System.out.println("date1在date2之后"); } ``` 使用`java.time.LocalDateTime`类的比较方法是通过`compareTo()`方法实现的,该方法与`java.util.Date`类的`compareTo()`方法类似,返回一个整数值,用于表示两个日期时间的先后顺序。 下面是使用`java.time.LocalDateTime`类比较两个日期时间的示例代码: ```java LocalDateTime dateTime1 = LocalDateTime.now(); LocalDateTime dateTime2 = LocalDateTime.of(2022, Month.JANUARY, 1, 0, 0, 0); int result = dateTime1.compareTo(dateTime2); if(result == 0) { System.out.println("日期时间相等"); } else if(result < 0) { System.out.println("dateTime1在dateTime2之前"); } else { System.out.println("dateTime1在dateTime2之后"); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一样的霸笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值