4 modi per confrontare due date in Java

Sommario:

4 modi per confrontare due date in Java
4 modi per confrontare due date in Java

Video: 4 modi per confrontare due date in Java

Video: 4 modi per confrontare due date in Java
Video: DA FOTO A TRACCIATO CON INKSCAPE - FROM PIC TO PATH INKSCAPE 2024, Aprile
Anonim

Esistono vari modi per confrontare le date Java. Internamente, una data è rappresentata come un punto (lungo) nel tempo, ovvero il numero di millisecondi trascorsi dal 1 gennaio 1970. In Java, Date è un oggetto, il che significa che include più metodi di confronto. Qualsiasi metodo di confronto di due date confronterà essenzialmente i tempi delle date.

Passi

Metodo 1 di 4: Utilizzo di compareTo

4301351 1
4301351 1

Passaggio 1. Utilizzare compareTo

Date implementa Comparable e quindi due date possono essere confrontate direttamente con il metodo compareTo. Se le date sono per lo stesso momento, il metodo restituisce zero. Se la data da confrontare è precedente all'argomento della data, viene restituito un valore inferiore a zero. Se la data confrontata è successiva all'argomento date, viene restituito un valore maggiore di zero. Se le date sono uguali, viene restituito il valore 0.

4301351 2
4301351 2

Passaggio 2. Creare gli oggetti data

Dovrai creare ogni oggetto data prima di poter iniziare a confrontarli. Un modo per farlo è usare la classe SimpleDateFormat. Consente di inserire facilmente i valori della data negli oggetti data.

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //Per dichiarare valori in nuovi oggetti data. usa lo stesso formato della data durante la creazione delle date Date date1 = sdf.parse("1995-02-23"); //date1 è il 23 febbraio 1995 Date date2 = sdf.parse("2001-10-31"); //date2 è il 31 ottobre 2001 Date date3 = sdf.parse("1995-02-23"); //la data3 è il 23 febbraio 1995

4301351 3
4301351 3

Passaggio 3. Confronta gli oggetti data

Il codice seguente ti mostrerà ogni caso: minore di, uguale e maggiore di.

    data1.compareTo(data2); //data1 < data2, restituisce meno di 0 date2.compareTo(data1); //data2 > data1, restituisce maggiore di 0 date1.compareTo(date3); //date1 = date3, quindi stamperà 0 sulla console

Metodo 2 di 4: Utilizzo di Uguale, Dopo e Prima

4301351 4
4301351 4

Passaggio 1. Usa uguale, dopo e prima

Le date possono essere confrontate con i metodi uguali, dopo e prima. Se due date sono per lo stesso punto nel tempo, il metodo equals restituirà true. Gli esempi utilizzeranno date create in precedenza dal metodo compareTo.

4301351 5
4301351 5

Passaggio 2. Confronta utilizzando il metodo prima

Il codice seguente mostra un caso vero e falso. Se date1 è precedente a date2, before restituisce true. In caso contrario, prima restituisce false.

    System.out.print(date1.before(date2)); //stampa vero System.out.print(date2.before(date2)); //stampa false

4301351 6
4301351 6

Passaggio 3. Confronta utilizzando il metodo dopo

Il codice seguente mostra un caso vero e falso. Se date2 è successivo a date1, after restituisce true. In caso contrario, dopo restituisce false.

    System.out.print(date2.after(date1));//stampa true System.out.print(date1.after(date2));//stampa false

4301351 7
4301351 7

Passaggio 4. Confronta utilizzando il metodo equals

Il codice seguente mostra un caso vero e falso. Se le date sono uguali, uguale restituisce vero. In caso contrario, equals restituisce false.

    System.out.print(date1.equals(date3));//prints true System.out.print(date1.equals(date2));//prints false

Metodo 3 di 4: utilizzo della classe Calendar

4301351 8
4301351 8

Passaggio 1. Usa il calendario

La classe calendar ha anche i metodi compareTo, equals, after e before che funzionano nello stesso modo descritto sopra per la classe date. Quindi, se le informazioni sulla data vengono conservate in un calendario, non è necessario estrarre la data solo per eseguire un confronto.

4301351 9
4301351 9

Passaggio 2. Crea istanze di Calendar

Per utilizzare i metodi di Calendar, avrai bisogno di alcune istanze di Calendar. Fortunatamente, puoi semplicemente prendere i tempi dalle istanze Date già create.

    Calendario cal1 = Calendar.getInstance(); //dichiara cal1 Calendar cal2 = Calendar.getInstance(); //dichiara cal2 Calendar cal3 = Calendar.getInstance(); //dichiara cal3 cal1.setTime(date1); //applica la data a cal1 cal2.setTime(date2); cal3.setTime(data3);

4301351 10
4301351 10

Passaggio 3. Confronta cal1 e cal2 utilizzando prima

Il codice seguente dovrebbe stampare true poiché cal1 è prima di cal2.

    System.out.print(cal1.before(cal2)); // stamperà vero

4301351 11
4301351 11

Passaggio 4. Confronta cal1 e cal2 utilizzando after

Il codice seguente dovrebbe stampare false poiché cal1 è prima di cal2.

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

4301351 12
4301351 12

Passaggio 5. Confronta cal1 e cal2 usando equals

Il codice seguente mostrerà un esempio di un caso vero e falso. La condizione dipende dalle istanze del calendario confrontate. Il codice dovrebbe stampare "true", quindi "false" nella riga successiva.

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

Metodo 4 di 4: Utilizzo di getTime

4301351 13
4301351 13

Passaggio 1. Usa getTime

È anche possibile confrontare direttamente il punto temporale di due date, anche se è probabile che uno degli approcci precedenti sia più leggibile e quindi preferibile. Questo sarà un confronto tra due tipi di dati primitivi, quindi può essere fatto con "", e "==".

4301351 14
4301351 14

Passaggio 2. Creare gli oggetti a lungo termine

Prima di poter confrontare le date, è necessario creare interi lunghi con i dati degli oggetti Date creati in precedenza. Fortunatamente, il metodo getTime() farà la maggior parte del lavoro per te.

    tempo lungo1 = getTime(data1); //dichiara time1 primitivo da date1 long time2 = getTime(date2); //dichiara time2 primitivo da date2

4301351 15
4301351 15

Passaggio 3. Fare un confronto inferiore

Utilizzare il simbolo minore di (<) per confrontare questi due valori interi. Poiché l'ora 1 è inferiore all'ora 2, il primo messaggio dovrebbe essere stampato. L'istruzione else è inclusa per una corretta sintassi.

    if(time1 < time2){ System.out.println("date1 è precedente a date2"); //verrà stampato da time1 <time2 } else{ System.out.println("date1 non è precedente a date2"); }

4301351 16
4301351 16

Passaggio 4. Fai un confronto maggiore di

Utilizzare il simbolo maggiore di (>) per confrontare questi due valori interi. Poiché l'ora 1 è maggiore dell'ora 2, il primo messaggio dovrebbe essere stampato. L'istruzione else è inclusa per una corretta sintassi.

    if(time2 > time1){ System.out.println("date2 è successivo a date1"); //verrà stampato da ora2 > ora1 } else{ System.out.println("data2 non è successiva a data1"); }

4301351 17
4301351 17

Passaggio 5. Fare un confronto uguale

Utilizzare il simbolo per verificare l'uguaglianza (==) per confrontare questi due valori interi per l'uguaglianza. Poiché time1 è uguale a time3, il primo messaggio dovrebbe essere stampato. Se il programma arriva all'istruzione else, significa che i tempi non sono uguali.

    if(time1 == time2){ System.out.println("le date sono uguali"); } else{ System.out.println("le date non sono uguali"); // stamperà da time1 != time2 }

Consigliato: