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

发布时间:2024-04-24 点击:60
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-31date2 : 2019-01-31date1 时间在 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教程》

住建部再出利民好消息住房限购令到期“不松绑”,房价有望持续下跌
云服务器单核价格
阿里云北美服务器备案
7 位数美金!Facebook疑似又买域名了?
新零售环境下的人人乐超市还能走多远
域名检测工具,检测结果及问题排查,域名服务器
google 云服务器费用
网站设计新思路