当前位置:懂科普 >

综合知识

> 如何在Java中比较两个日期 4种方法来在Java中比较两个日期

如何在Java中比较两个日期 4种方法来在Java中比较两个日期

目录方法1:使用compareTo1、使用compareTo。2、创建日期对象。3、比较日期对象。方法2:使用Equals、After、和Before1、使用equals、after、和before。2、用before方法比较日期。3、用after方法比较日期。4、用equals方法比较日期。方法3:使用Calendar类1、使用calendar。2、 创建Calendar实例。3、用before比较cal1和cal2。4、用after比较cal1和cal2。5、用equals比较cal1和cal2。方法4:使用getTime1、使用getTime。2、创建long类型的time对象。3、进行少于比较。4、进行大于比较。5、进行等于比较。有多种方法可以比较Java日期。日期在计算机内部表示为(long型)时间点——自1970年1月1日以来经过的毫秒数。在Java中,Date是一个对象,这意味着它包含多个比较方法。任何比较两个日期的方法本质上都是在比较日期的时间。

方法1:使用compareTo

如何在Java中比较两个日期 4种方法来在Java中比较两个日期

1、使用compareTo。Date实现了Comparable<Date>,因此两个日期可以直接用compareTo方法进行比较。如果日期在同一时间点,则方法返回零。如果比较的日期在date参数之前,则返回一个小于零的值。如果被比较的日期在另一个date参数之后,则返回一个大于零的值。如果日期相等,则返回0值。

如何在Java中比较两个日期 4种方法来在Java中比较两个日期 第2张

2、创建日期对象。在开始比较之前,需要为每个日期创建对象。一种方法是使用SimpleDateFormat类。它允许在日期对象中轻松输入日期值。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //用于在新的日期对象中声明值。创建日期时使用相同的日期格式Date date1 = sdf.parse("1995-02-23"); //date1是1995年2月23日Date date2 = sdf.parse("2001-10-31"); //date2 是2001年10月31日Date date3 = sdf.parse("1995-02-23"); //date3 是1995年2月23日

如何在Java中比较两个日期 4种方法来在Java中比较两个日期 第3张

3、比较日期对象。下面的代码将显示每种情况——小于、等于和大于。

date1.compareTo(date2); //date1 < date2,返回小于0的值date2.compareTo(date1); //date2 > date1,返回大于0的值date1.compareTo(date3); //date1 = date3,将在控制台中输出0

方法2:使用Equals、After、和Before

如何在Java中比较两个日期 4种方法来在Java中比较两个日期 第4张

1、使用equals、after、和before。可以用equals、after、和before方法比较日期。如果两个日期在同一时间点,equals方法将返回true。示例将使用之前创建的compareTo方法中的日期。

如何在Java中比较两个日期 4种方法来在Java中比较两个日期 第5张

2、用before方法比较日期。下列代码展示了true和false两种情况。如果date1在date2之前,before返回true。否则返回false。

System.out.print(date1.before(date2)); //输出trueSystem.out.print(date2.before(date2)); //输出false

如何在Java中比较两个日期 4种方法来在Java中比较两个日期 第6张

3、用after方法比较日期。下列代码展示了true和false两种情况。如果date2在date1之后,after返回true。否则返回false。

System.out.print(date2.after(date1));//输出trueSystem.out.print(date1.after(date2));//输出false

如何在Java中比较两个日期 4种方法来在Java中比较两个日期 第7张

4、用equals方法比较日期。下列代码展示了true和false两种情况。如果日期相等,equals返回true。否则返回false。

System.out.print(date1.equals(date3));//输出trueSystem.out.print(date1.equals(date2));//输出false

方法3:使用Calendar类

如何在Java中比较两个日期 4种方法来在Java中比较两个日期 第8张

1、使用calendar。Calendar类也有compareTo、equals、after和before方法,工作方式与上面描述的date类的方法相同。因此,如果日期信息保存在calendar类中,则不需要提取日期来执行比较。

如何在Java中比较两个日期 4种方法来在Java中比较两个日期 第9张

2、 创建Calendar实例。要使用Calendar方法,需要几个Calendar实例。幸运的是,你可以从已经创建的Date实例中获取时间。

Calendar cal1 = Calendar.getInstance(); //声明cal1Calendar cal2 = Calendar.getInstance(); //声明cal2Calendar cal3 = Calendar.getInstance(); //声明cal3cal1.setTime(date1); //将日期应用于cal1cal2.setTime(date2);cal3.setTime(date3);

如何在Java中比较两个日期 4种方法来在Java中比较两个日期 第10张

3、用before比较cal1和cal2。下面的代码应该会输出true,因为cal1在cal2之前。

System.out.print(cal1.before(cal2)); //将会输出true

如何在Java中比较两个日期 4种方法来在Java中比较两个日期 第11张

4、用after比较cal1和cal2。下面的代码应该会输出false,因为cal1在cal2之前。

System.out.print(cal1.after(cal2)); //输出false

如何在Java中比较两个日期 4种方法来在Java中比较两个日期 第12张

5、用equals比较cal1和cal2。下面的代码将展示true和false两种情况的示例。条件取决于被比较的calendar实例。代码应该会输出"true",然后在下一行输出"false"。

System.out.println(cal1.equals(cal3)); //输出true: cal1 == cal3System.out.print(cal1.equals(cal2)); //输出false: cal1 != cal2

方法4:使用getTime

如何在Java中比较两个日期 4种方法来在Java中比较两个日期 第13张

1、使用getTime。尽管前面的任何一种方法都可能更具可读性,因而也更可取,但是也可以直接比较两个日期的时间点。这是对两种原始数据类型的比较,因此可以使用"<"、">"和"=="来比较。

如何在Java中比较两个日期 4种方法来在Java中比较两个日期 第14张

2、创建long类型的time对象。在比较日期之前,必须使用前面创建的Date对象中的数据来创建长整型。幸好getTime()方法可以帮你完成大部分工作。

long time1 = getTime(date1); //用date1声明原始数据time1long time2 = getTime(date2); //用date2声明原始数据time2

如何在Java中比较两个日期 4种方法来在Java中比较两个日期 第15张

3、进行少于比较。使用小于号(<)比较这两个整数值。由于time1小于time 2,所以应该输出第一条消息。为了使语法正确使用了else语句。

if(time1 < time2){System.out.println("date1 is before date2"); //将会输出这句话,因为time1 <time2}else{System.out.println("date1 is not before date2");}

如何在Java中比较两个日期 4种方法来在Java中比较两个日期 第16张

4、进行大于比较。使用大于号(>)比较这两个整数值。由于time1大于time 2,所以应该输出第一条消息。为了使语法正确使用了else语句。

if(time2 > time1){System.out.println("date2 is after date1"); //将会输出这句话,因为time2 > time1 }else{System.out.println("date2 is not after date1");}

如何在Java中比较两个日期 4种方法来在Java中比较两个日期 第17张

5、进行等于比较。使用等于符号检查是否相等(==),从而比较这两个整数值是否相等。由于time1等于time3,所以应该输出第一个消息。如果程序执行了else语句,意味着这两个时间不相等。

if(time1 == time2){System.out.println("the dates are equal");}else{System.out.println("the dates are not equal"); //将会输出这句话,因为time1 != time2}

标签: 日期 java
  • 文章版权属于文章作者所有,转载请注明 https://dongkepu.com/zonghezhishi/dx9j57.html