1. Date.compareto()

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

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

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

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


  1. @TestvoID testDateCompare() throws ParseException {
  2. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  3. Date date1 = sdf.parse("2009-12-31");
  4. Date date2 = sdf.parse("2019-01-31");
  5. System.out.println("date1 : " + sdf.format(date1));
  6. System.out.println("date2 : " + sdf.format(date2)); if (date1.compareto(date2) > 0) {
  7. System.out.println("Date1 时间在 Date2 之后");
  8. } else if (date1.compareto(date2) < 0) {
  9. System.out.println("Date1 时间在 Date2 之前");
  10. } else if (date1.compareto(date2) == 0) {
  11. System.out.println("Date1 时间与 Date2 相等");
  12. } else {
  13. System.out.println("程序怎么会运行到这里?正常应该不会");
  14. }
  15. }

输出结果:


  1. date1 : 2009-12-31date2 : 2019-01-31Date1 时间在 Date2 之前

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

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


  1. @TestvoID testDateCompare2() throws ParseException {
  2. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  3. Date date1 = sdf.parse("2009-12-31");
  4. Date date2 = sdf.parse("2019-01-31");
  5. System.out.println("date1 : " + sdf.format(date1));
  6. System.out.println("date2 : " + sdf.format(date2)); if (date1.after(date2)) {
  7. System.out.println("Date1 时间在 Date2 之后");
  8. } if (date1.before(date2)) {
  9. System.out.println("Date1 时间在 Date2 之前");
  10. } if (date1.equals(date2)) {
  11. System.out.println("Date1 时间与 Date2 相等");
  12. }
  13. }

输出结果


  1. date1 : 2009-12-31date2 : 2019-01-31Date1 时间在 Date2 之前

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

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


  1. @TestvoID testDateCompare3() throws ParseException {
  2. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  3. Date date1 = sdf.parse("2009-12-31");
  4. Date date2 = sdf.parse("2019-01-31");
  5. System.out.println("date1 : " + sdf.format(date1));
  6. System.out.println("date2 : " + sdf.format(date2));
  7. Calendar cal1 = Calendar.getInstance();
  8. Calendar cal2 = Calendar.getInstance();
  9. cal1.setTime(date1);
  10. cal2.setTime(date2); if (cal1.after(cal2)) {
  11. System.out.println("Date1 时间在 Date2 之后");
  12. } if (cal1.before(cal2)) {
  13. System.out.println("Date1 时间在 Date2 之前");
  14. } if (cal1.equals(cal2)) {
  15. System.out.println("Date1 时间与 Date2 相等");
  16. }
  17. }

输出结果:


  1. date1 : 2009-12-31
  2. date2 : 2019-01-31
  3. Date1 时间在 Date2 之前

4. Java 8日期比较方法

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


  1. @TestvoID testDateCompare4() throws ParseException {
  2. DateTimeFormatter sdf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
  3. LocalDate date1 = LocalDate.of(2009, 12, 31);
  4. LocalDate date2 = LocalDate.of(2019, 1, 31);
  5. System.out.println("date1 : " + sdf.format(date1));
  6. System.out.println("date2 : " + sdf.format(date2));
  7. System.out.println("Is..."); if (date1.isAfter(date2)) {
  8. System.out.println("Date1 时间在 Date2 之后");
  9. } if (date1.isBefore(date2)) {
  10. System.out.println("Date1 时间在 Date2 之前");
  11. } if (date1.isEqual(date2)) {
  12. System.out.println("Date1 时间与 Date2 相等");
  13. }
  14. }

输出结果


  1. date1 : 2009-12-31date2 : 2019-01-31Is...Date1 时间在 Date2 之前

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

  1. JAVA中获取文件MD5值的四种方法

    JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...

  2. Java中Double保留自定义小数位的几种方法

    Java中Double保留自定义小数位的几种方法 在Java语言编程中我们有时候会有保留指定小数位的需求,那应该如何操作呢,下面带来几种方法:(这里的所有方法以保留两位小数位为例) 一. 四舍五入并保 ...

  3. qt5设置linux系统时间,Qt中使用QLabel显示时间的两种方法

    Qt中使用QLabel显示时间的两种方法思路一致,只是实现方法不一样而已. main.cpp #include "displaytime.h" #include int main( ...

  4. mysql 时间戳与java_在Java中处理MySQL日期时间和时间戳

    BalusC对该问题进行了很好的描述,但缺乏一个好的端到端代码,用户可以自己选择并测试它. 最佳做法是始终将日期时间以UTC时区存储在DB中.Sql时间戳类型没有时区信息. 将datetime值写入s ...

  5. java中如何进行日期时间比较

    1. Date.compareTo() java.util.Date提供了在Java中比较两个日期的经典方法compareTo(). 1.如果两个日期相等,则返回值为0.2.如果Date在date参数 ...

  6. Java精确到毫秒获取时间的三种方法,以及适用场景

    目前获取毫秒值时间戳大概有下面三种方法 // 方法一 System.currentTimeMillis(); // 方法二 Calendar.getInstance().getTimeInMillis ...

  7. Java中加载properties文件的6种方法

    .使用java.util.Properties类的load()方法 示例: InputStream in = lnew BufferedInputStream(new FileInputStream( ...

  8. Java中double类型大小比较的五种方法

    文章目录 1.使用BigDecimal 2.使用包装类Double 3.在误差范围内运行相等 4.转换成字符串 5.使用doubleToLongBits()方法 在Java中 int类型数据的大小比较 ...

  9. Java中对List集合排序的两种方法

    第一种方法,就是list中对象实现Comparable接口,代码如下: public class Person implements Comparable<Person> {private ...

最新文章

  1. 电脑桌面便签小工具_电脑桌面工作任务提醒软件有哪些?多端同步提醒办公软件试试云便签...
  2. 使用脚本编写 Vim 编辑器,第 2 部分: 用户定义函数
  3. java定时执行一段代码
  4. java mysql embedded,java-将MySQL Connector / MXJ用于应用程序的优点/缺点/替代品有哪些...
  5. Unable to open /dev/sda的原因之一
  6. kafka 启动_Kafka管理工具Kafka Manager
  7. 大数据之-Hadoop之HDFS的API操作_判断是文件还是文件夹---大数据之hadoop工作笔记0062
  8. 电视商城之maven热部署
  9. mysql navicat报表_使用Navicat定时备份mysql数据库和创建报表并邮件自动发送
  10. php索引数组转键数组,PHP-Codeigniter:如何从指定索引转换数组值?
  11. 深入理解java虚拟机
  12. 深度学习-自然语言处理(NLP)-第三方库(工具包):Synonyms【更好的中文近义词、聊天机器人、智能问答工具包】
  13. Mac有些网址打不开问题解决办法
  14. python 类中public,protected,private定义方式
  15. 安装python之后电脑变卡_【Python】如何让电脑变卡?
  16. Hexo博客搭建教程
  17. cannot be cast to com.baomidou.mybatisplus.core.metadata.IPage
  18. 蛋白质结构预测 AlphaFold2、ColabFold、Uni-Fold、ESMFold
  19. 这款开源工具绝了!!!
  20. perp系列之六:perp工作截屏

热门文章

  1. Web实现:旧版微博个人页整体实现
  2. ST_Contains数据查询速度太慢,解决方案
  3. mysql如何开启慢查询_MySQL如何开启慢查询 MySQL开启慢查询方法
  4. 阿里企业金融阿里云实习一面复盘
  5. 门控循环单元网络GRU详解
  6. C语言第一课————建立编程思维
  7. Java时间日期显示
  8. CDH大数据平台搭建之集群规划
  9. html5成熟了吗 2017,成熟的说说2017_很成熟很现实的心情说说
  10. 简单的连接数据库的Web登录界面