java中的日期和时间比较大小

 更新时间:2022年10月26日 14:33:50   作者:小马 同学  
这篇文章主要介绍了java中的日期和时间比较大小,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

日期和时间比较大小

java中日期如何比较大小

 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");    //设置日期格式
 
 Date begin = fmt.parse("2017-07-30"); //开始日期
 
 Date end = fmt.parse("2017-08-30"); //结束日期
 
 try {
      Date bt=df.parse(begin ); 
      Date et=df.parse(end );
      if (bt.before(et)){ 
            bt日期小于et日期
      }
      if (bt.after(et)){ 
            bt日期大于et日期
      }
} catch (ParseException e) {
      e.printStackTrace();
} 

java中时间如何比较大小

public static void main(String[] args) throws ParseException {
	String time = "2019-6-02 11:06:51";
	String time1 = "2019-6-02 11:05:51";
	SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	Date d1 = format.parse(time);
	Date d2 = format.parse(time1);
	//前者大于后者 返回大于0的数字反之小于0的数字,等于返回0
	System.out.println(d1.compareTo(d2));
}

比较两个日期时间,比较两个日期大小

我们经常会遇到一个问题,需要比较两个时间的大小,或者需要判断一个时间在另一个时间之前,或者一个时间在另一个时间之后,比较日期时间的大小,还要精确到秒,这个时候经常会有一些人卡住。

这个时候我们来讲解一下java8的新日期时间类。

LocalDateTime

可以很好的解决日期比较大小的问题,而且是线程安全的,精确到秒

不说废话直接上代码

看不懂的可以直接复制使用 只需要传2个需要比较的日期时间即可

但是必须需要jdk8版本 因为这个是java8的日期时间处理类

public boolean verifyDate(Date begin,Date end){
        ZoneId zoneId = ZoneId.systemDefault();
        LocalDateTime beginDate = LocalDateTime.ofInstant(begin.toInstant(), zoneId);
        LocalDateTime endDate = LocalDateTime.ofInstant(end.toInstant(), zoneId);
        return beginDate.isBefore(endDate);
    }

比较begin的时间是否在end之前 看不懂的可以直接复制上面代码 使用 精确到秒

  • begin < end 返回true
  • begin > end 返回false
  • begin = end 返回false

主要是使用LocalDateTime有一种比较的方法

  • isBefore(LocalDateTime ) :可判断当前的localdatetime时间在参数的localdatetime之后
  • isAfter(LocalDateTime) :可判断当前的localdatetime时间在参数的localdatetime之前

如:

isBefore()

a.isBefore(b) 

  • a < b 返回true 
  • a = b 返回false 
  • a > b 返回false

isAfter()

a.isAfter(b) 

  • a < b 返回false 
  • a = b 返回false 
  • a > b 返回true

DateTimeFormatter

DateTimeFormatter这个相当于simpledateformatter的日期安全类

他提供了更强大的api

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 分布式面试消息队列解决消息重复保证消息顺序

    分布式面试消息队列解决消息重复保证消息顺序

    这篇文章主要介绍了分布式面试问题:分布式消息队列如何解决消息重复并保证消息顺序面试问题解答,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • JDBC用IDEA连接SQLServer数据库的超实用教程

    JDBC用IDEA连接SQLServer数据库的超实用教程

    JDBC是Java连接数据库的一种接口,它由各个数据库厂商为开发者提供的接口,要使用它需要到相应厂商下载对应的jar包,下面这篇文章主要给大家介绍了关于JDBC用IDEA连接SQLServer数据库的超实用教程,需要的朋友可以参考下
    2023-05-05
  • 关于@Autowired注入依赖失败的问题及解决

    关于@Autowired注入依赖失败的问题及解决

    这篇文章主要介绍了关于@Autowired注入依赖失败的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 浅谈java接口的幂等性及解决方案

    浅谈java接口的幂等性及解决方案

    本文主要介绍了java接口的幂等性及解决方案,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Java日常练习题,每天进步一点点(62)

    Java日常练习题,每天进步一点点(62)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-08-08
  • SpringAop切入点execution表达式的深入讲解

    SpringAop切入点execution表达式的深入讲解

    Spring AOP 可能会经常使用 execution切入点指示符,下面这篇文章主要给大家介绍了关于SpringAop切入点execution表达式的相关资料,需要的朋友可以参考下
    2021-08-08
  • Windows10系统下JDK1.8的下载安装及环境变量配置的教程

    Windows10系统下JDK1.8的下载安装及环境变量配置的教程

    这篇文章主要介绍了Windows10系统下JDK1.8的下载安装及环境变量配置的教程,本文图文并茂给大家介绍的非常详细,对大家的工作或学习具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • 浅谈springMVC拦截器和过滤器总结

    浅谈springMVC拦截器和过滤器总结

    本篇文章主要介绍了springMVC拦截器和过滤器总结,可以用来对访问的url进行拦截处理,有兴趣的可以了解一下。
    2017-01-01
  • SpringBoot多数据源的两种实现方式实例

    SpringBoot多数据源的两种实现方式实例

    最近在项目开发中,需要为一个使用MySQL数据库的SpringBoot项目,新添加一个PLSQL数据库数据源,下面这篇文章主要给大家介绍了关于SpringBoot多数据源的两种实现方式,需要的朋友可以参考下
    2022-04-04
  • springboot中使用redis由浅入深解析

    springboot中使用redis由浅入深解析

    这篇文章主要由浅入深为大家介绍了springboot中使用redis的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11

最新评论