前言

工作中遇到时间的比较问题,这里提供几种常用的Date类型数据比较大小方式。

  1. compareTo()方法
  2. before()方法
  3. after()方法
  4. getTime()方法

1、 compareTo方法

    /*** 时间比较方法compareTo* 如果的d1比d2 大 结果=1* 如果的d1比d2 等 结果=0* 如果的d1比d2 小 结果=-1** @param d1* @param d2*/private void printResultCompareTo(Date d1,Date d2){if(d1.compareTo(d2) == 1){System.out.println(new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(d1) + " 在 " + new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(d2) + "之后");}else if(d1.compareTo(d2) == 0){System.out.println(new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(d1) + " = " + new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(d2) );}else{System.out.println(new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(d1) + " 在 " + new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(d2) + "之前");}}

2、 before方法

    /*** 使用before方法比较** @param d1* @param d2*/private void printResultBefore(Date d1,Date d2){if(d1.before(d2)){System.out.println(new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(d1) + " 在 " + new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(d2) + "之前");}else{System.out.println(new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(d1) + " 在 " + new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(d2) + "之后");}}

3、 after方法

    /*** 使用after方法比较** @param d1* @param d2*/private void printResultAfter(Date d1,Date d2){if(d1.after(d2)){System.out.println(new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(d1) + " 在 " + new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(d2) + "之后");}else{System.out.println(new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(d1) + " 在 " + new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(d2) + "之前");}}

4、 getTime方法

    /*** 使用getTime方法取毫秒值比较** @param d1* @param d2*/private void printResultGetTime(Date d1,Date d2){if(d1.getTime() > d2.getTime()){System.out.println(new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(d1) + " 在 " + new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(d2) + "之后");}else if(d1.getTime() == d2.getTime()){System.out.println(new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(d1) + " = " + new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(d2) );}else{System.out.println(new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(d1) + " 在 " + new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(d2) + "之前");}}

测试代码

    //定义一个date1String1字符串private final String date1String1 = "2018-09-01 23:23:59";//定义一个date1String2字符串private final String date1String2 = "2020-04-20 23:23:59";//定义一个date1String3字符串private final String date1String3 = "2021-04-20 23:23:59";//参数格式化类型private final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";//定义date类型数据private Date date1;private Date date2;private Date date3;@Beforepublic void beforPrint() throws ParseException {date1 = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).parse(date1String1);date2 = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).parse(date1String2);date3 = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).parse(date1String3);System.out.println("date1: " + date1String1);System.out.println("date2: " + date1String2);System.out.println("date3: " + date1String3);}/*** 使用compareTo比较*/@Testpublic void testCompare(){System.out.println("--------------使用compareTo比较-----------------");printResultCompareTo(date1, date2);printResultCompareTo(date3, date2);System.out.println("--------------使用before方法比较-----------------");printResultBefore(date1,date2);printResultBefore(date3, date2);System.out.println("--------------使用after方法比较-----------------");printResultAfter(date1, date2);printResultAfter(date3, date2);System.out.println("--------------使用getTime方法比较-----------------");printResultGetTime(date1, date2);printResultGetTime(date3, date2);}

测试结果如下:

date1: 2018-09-01 23:23:59
date2: 2020-04-20 23:23:59
date3: 2021-04-20 23:23:59
--------------使用compareTo比较-----------------
2018-09-01 23:23:59 在 2020-04-20 23:23:59之前
2021-04-20 23:23:59 在 2020-04-20 23:23:59之后
--------------使用before方法比较-----------------
2018-09-01 23:23:59 在 2020-04-20 23:23:59之前
2021-04-20 23:23:59 在 2020-04-20 23:23:59之后
--------------使用after方法比较-----------------
2018-09-01 23:23:59 在 2020-04-20 23:23:59之前
2021-04-20 23:23:59 在 2020-04-20 23:23:59之后
--------------使用getTime方法比较-----------------
2018-09-01 23:23:59 在 2020-04-20 23:23:59之前
2021-04-20 23:23:59 在 2020-04-20 23:23:59之后

java程序中date类型比较大小总结相关推荐

  1. 在java的程序里date类型比较大小

    Date a; Date b; 假设现在你已经实例化了a和b a.after(b)返回一个boolean,如果a的时间在b之后(不包括等于)返回trueb.before(a)返回一个boolean,如 ...

  2. java date类型大小比较_java中date类型如何比较大小

    java中date类型如何比较大小 时间:2018-01-19     来源:Java data类型讲解 Date类在jdk1.1中就已经出现,算得上一个比较有历史的类了,用来表示日期时间.在实际的工 ...

  3. [转载] java 中 date类型详解

    参考链接: Java中的date after()方法 举例: Date的after和before方法解释 Date1.after(Date2),当Date1大于Date2时,返回TRUE,当小于等于时 ...

  4. java 日期是否合法_java 中 Date 类型快判断日期是否合法.

    // 如果日期不合法,则抛异常try {String date_str = 5555-22-33;SimpleDateFormat format=new SimpleDateFormat(yyyy-M ...

  5. java上传一段语音_在java程序中加入语音功能,例如给段字符串“A101”,就能发出声音,请大家帮帮忙,谢谢...

    展开全部 为应62616964757a686964616fe59b9ee7ad9431333335303530用程序加上语音能力有什么好处呢?粗略地讲,是为了趣味,它适合所有注重趣味的应用,比如游戏. ...

  6. java中打开文件显示_从java程序中打开任何文件

    在 java中打开文件似乎有点棘手 – 对于.txt文件,必须将File对象与Scanner或BufferedReader对象结合使用 – 对于图像IO,必须使用 ImageIcon类 – 如果要打开 ...

  7. Java 程序中的多线程

    在 Java 程序中使用多线程要比在 C 或 C++ 中容易得多,这是因为 Java 编程语言提供了语言级的支持.本文通过简单的编程示例来说明 Java 程序中的多线程是多么直观.读完本文以后,用户应 ...

  8. c ibatis mysql实例_[Java教程]java程序中的ibatis连接mySql的基本实例

    [Java教程]java程序中的ibatis连接mySql的基本实例 0 2015-03-16 00:01:32 属性文件:SqlMap.properties1 driver=com.mysql.jd ...

  9. java主程序怎样调用子程序_存过和函数以及在Java程序中的调用

    存储过程,函数都是数据库的对象. 创建和调用 存储在数据库中的子程序,是由plsql语言写的,完成特定功能的程序. 函数可以返回值,存过不能返回值.除此之外,一致. create procedure ...

最新文章

  1. Mysql 操作技巧
  2. python 第三方包自动导入_7行代码,彻底告别python第三方包import导入问题!
  3. Spark SQL(五)之数据加载与存储
  4. POJ 1753 Flip Game(回溯)
  5. linux close 头文件,Linux open close read write lseek函数的使用
  6. JAVA每个初学者都应该搞懂的问题 还可以比较基础
  7. 【HDFS】HDFS与dfsadmin结合使用
  8. switch芯片上的QoS,VLAN介绍
  9. 含重根的三阶实对称矩阵的快速对角化方法
  10. DiskPart-删除磁盘分区
  11. “止于至善,彼岸可及”——记我在东大的这三年
  12. DIY回音壁多媒体音箱
  13. 2021 BNU Winter Training 9 (2020CCPC东北四省赛)
  14. npm start报错的log文件在哪里
  15. const T vs. T const ——Dan Saks 【翻译】
  16. 模型的骨骼动画技术讲解
  17. xpath获取不包含某一子标签的a标签
  18. 英特尔第11代处理器(Intel Tiger Lake) 疑难解答 - 安装Windows 10时找不到驱动器
  19. Activity详解2
  20. 什么是iu组装服务器,华硕迷你IU机架服务器RS100-E4/PI2全新上市

热门文章

  1. WDA将改变现有的abap的开发方式
  2. 订单BOM与销售BOM的区别
  3. 项目中涉及到的BAPI
  4. 在vs2005中使用Com连接SAP系统(二)
  5. 手里的基金在震荡?数据解读2021“开门红”如何控制仓位
  6. 2020高考志愿填报:去哪个城市?选什么专业?挑哪个学校?大数据分析告诉你!
  7. 爱优腾芒“跑马圈地”,AI广告营销能拯救“盈利难”的视频平台吗?
  8. sql 判断记录是否存在_判断数据库是否存在该条记录,count(0) or limit
  9. java 九大行星运行_九大行星运行周期!
  10. CTF(pwn)堆利用 之 off by one