綜合知識

當前位置 /首頁/綜合知識 > /列表

4種方法來在Java中比較兩個日期,如何在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}

TAG標籤:java 日期 #