登录  /  注册
首页 > Java > java教程 > 正文

java中如何进行日期时间比较?4种方法介绍

青灯夜游
发布: 2020-07-27 17:32:15
转载
4287人浏览过

java中如何进行日期时间比较?4种方法介绍

1. Date.compareTo()

java.util.Date提供了在Java中比较两个日期的经典方法compareTo()。

1、如果两个日期相等,则返回值为0。

2、如果Date在date参数之后,则返回值大于0。

3、如果Date在date参数之前,则返回值小于0。

@Testvoid testDateCompare() throws ParseException {
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  Date date1 = sdf.parse("2009-12-31");
  Date date2 = sdf.parse("2019-01-31");

  System.out.println("date1 : " + sdf.format(date1));
  System.out.println("date2 : " + sdf.format(date2));  if (date1.compareTo(date2) > 0) {
    System.out.println("Date1 时间在 Date2 之后");
  } else if (date1.compareTo(date2) < 0) {
    System.out.println("Date1 时间在 Date2 之前");
  } else if (date1.compareTo(date2) == 0) {
    System.out.println("Date1 时间与 Date2 相等");
  } else {
    System.out.println("程序怎么会运行到这里?正常应该不会");
  }
}
登录后复制

输出结果:

date1 : 2009-12-31date2 : 2019-01-31Date1 时间在 Date2 之前
登录后复制
登录后复制

2. Date.before(),Date.after()和Date.equals()

一种语义上比较友好的方法来比较两个java.util.Date

@Testvoid testDateCompare2() throws ParseException {
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  Date date1 = sdf.parse("2009-12-31");
  Date date2 = sdf.parse("2019-01-31");

  System.out.println("date1 : " + sdf.format(date1));
  System.out.println("date2 : " + sdf.format(date2));  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 相等");
  }
}
登录后复制

输出结果

date1 : 2009-12-31date2 : 2019-01-31Date1 时间在 Date2 之前
登录后复制
登录后复制

3. Calender.before(),Calender.after()和Calender.equals()

使用java.util.Calendar比较两个Date日期

@Testvoid testDateCompare3() throws ParseException {
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  Date date1 = sdf.parse("2009-12-31");
  Date date2 = sdf.parse("2019-01-31");

  System.out.println("date1 : " + sdf.format(date1));
  System.out.println("date2 : " + sdf.format(date2));

  Calendar cal1 = Calendar.getInstance();
  Calendar cal2 = Calendar.getInstance();
  cal1.setTime(date1);
  cal2.setTime(date2);  if (cal1.after(cal2)) {
    System.out.println("Date1 时间在 Date2 之后");
  }  if (cal1.before(cal2)) {
    System.out.println("Date1 时间在 Date2 之前");
  }  if (cal1.equals(cal2)) {
    System.out.println("Date1 时间与 Date2 相等");
  }
}
登录后复制

输出结果:

date1 : 2009-12-31
date2 : 2019-01-31
Date1 时间在 Date2 之前
登录后复制

4. Java 8日期比较方法

在Java 8中,可以使用新的isBefore(),isAfter(),isEqual()和compareTo()来比较LocalDate,LocalTime和LocalDateTime。以下示例以比较两个java.time.LocalDate

@Testvoid testDateCompare4() throws ParseException {
  DateTimeFormatter sdf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
  LocalDate date1 = LocalDate.of(2009, 12, 31);
  LocalDate date2 = LocalDate.of(2019, 1, 31);

  System.out.println("date1 : " + sdf.format(date1));
  System.out.println("date2 : " + sdf.format(date2));

  System.out.println("Is...");  if (date1.isAfter(date2)) {
    System.out.println("Date1 时间在 Date2 之后");
  }  if (date1.isBefore(date2)) {
    System.out.println("Date1 时间在 Date2 之前");
  }  if (date1.isEqual(date2)) {
    System.out.println("Date1 时间与 Date2 相等");
  }
}
登录后复制

输出结果

date1 : 2009-12-31date2 : 2019-01-31Is...Date1 时间在 Date2 之前
登录后复制

推荐教程:《java教程

以上就是java中如何进行日期时间比较?4种方法介绍的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
相关标签:
来源:segmentfault网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号