Confronta le date in Java

Autore: Roger Morrison
Data Della Creazione: 24 Settembre 2021
Data Di Aggiornamento: 1 Luglio 2024
Anonim
Tutorial 32 - Operazioni con le Date (Java)
Video: Tutorial 32 - Operazioni con le Date (Java)

Contenuto

Esistono diversi modi per confrontare le date in Java. Internamente, una data è rappresentata come un punto nel tempo (lungo), il numero di millisecondi trascorsi dal 1 gennaio 1970. In Java, date è l'oggetto Date, il che significa che contiene più metodi per confrontare le date. Qualsiasi metodo di confronto di due date fondamentalmente confronterà il tempo trascorso di entrambe le date.

Al passo

Metodo 1 di 4: utilizzo del comando "compareTo"

  1. Usa compareTo. Date implementa ComparableDate> e quindi due date possono essere confrontate direttamente tra loro utilizzando il metodo compareTo. Se le date indicano lo stesso momento nel tempo, il metodo restituirà zero. Se la data da confrontare è precedente all'argomento della data, verrà restituito un valore negativo. Se la data da confrontare è una data successiva a quella dell'argomento data, verrà restituito un valore positivo. Se le date sono le stesse, verrà restituito uno zero.
  2. Crea gli oggetti Date. Dovrai creare ogni oggetto data prima di poter iniziare a confrontarli. Un modo per farlo è applicare la classe SimpleDateFormat. Ciò consente di inserire facilmente le date negli oggetti Date.

      SimpleDateFormat sdf = nuovo SimpleDateFormat ("aaaa-MM-gg"); // Per dichiarare valori in nuovi oggetti data.Utilizza 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"); // date3 è il 23 febbraio 1995

  3. Confronta gli oggetti data. Quanto segue mostra ogni caso: minore di, uguale a e maggiore di.

      date1.compareTo (date2); // date1 date2, minore di 0 date2.compareTo (date1); // date2> date1, restituisce maggiore di 0 date1.compareTo (date3); // date1 = date3, restituisce 0

Metodo 2 di 4: utilizzo dei metodi "uguale, dopo e prima"

  1. Usa uguale, dopo e prima. Le date possono essere confrontate tra loro usando i metodi uguale, dopo e prima. Se due date indicano la stessa ora, il metodo equals restituirà "true". Gli esempi utilizzano le date create in precedenza tramite il metodo compareTo.
  2. Confronta usando il metodo prima. Il codice seguente mostra un caso di vero e falso. Se date1 è precedente a date2, il risultato è vero. In caso contrario, before restituisce false.

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

  3. Confronta questo con il metodo after. Il codice seguente mostra un caso di vero e falso. Se date2 è successiva a date1, after restituisce true. In caso contrario, after restituisce false.

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

  4. Confronta utilizzando il metodo uguale. Il codice seguente mostra un caso di vero e falso. Se le date sono le stesse, uguale a restituisce vero. In caso contrario, uguale a restituisce falso.

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

Metodo 3 di 4: utilizzo della classe Calendar

  1. Usa la classe Calendar. 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 i dati della data sono conservati in un calendario, non è necessario estrarre "data", ma solo per confrontare due date.
  2. Crea istanza di Calendar. Per utilizzare i metodi di Calendar sono necessarie alcune istanze di Calendar. Fortunatamente, puoi utilizzare l'ora generata dalle istanze di Date.

      Calendar 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 (date3);

  3. Confronta cal1 e cal2 usando prima. Il codice seguente restituisce true perché cal1 è precedente a cal2.

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

  4. Confronta cal1 e cal2 usando after. Il codice seguente restituisce false, perché cal1 è precedente a cal2.

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

  5. Confronta cal1 e cal2 usando uguale. Il codice seguente mostra un esempio di true e false. La condizione dipende dalle istanze di Calendar confrontate. Il codice seguente restituisce "true" e quindi "false" nella riga successiva.

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

Metodo 4 di 4: utilizzo del metodo "getTime"

  1. Usa getTime. È anche possibile confrontare direttamente due punti temporali, sebbene sia probabile che uno qualsiasi degli approcci precedenti produca risultati più leggibili ed è quindi preferito. Questo è un confronto tra due tipi di dati primitivi, quindi può essere fatto con "", ">" e "==".
  2. Crea gli oggetti di tempo "lungo". Prima di poter confrontare le date, è necessario creare numeri interi lunghi dai dati degli oggetti Date creati in precedenza. Fortunatamente, il metodo getTime () farà la maggior parte del lavoro per te.

      long time1 = getTime (date1); // dichiara la primitiva time1 di date1 long time2 = getTime (date2); // dichiara la primitiva time2 di date2

  3. Usa un'equazione "minore di". Usa un simbolo "minore di" () per confrontare questi due valori interi. Poiché time1 è inferiore a time2, il primo messaggio dovrebbe essere stampato sullo schermo. L'istruzione else è inclusa per la sintassi corretta.

      if (time1 time2) {System.out.println ("la data1 è precedente alla data2"); // stampa perché time1 time2} else {System.out.println ("date1 è successiva o uguale a date2"); }

  4. Fai un confronto "maggiore di". Utilizza il simbolo "maggiore di" (>) per confrontare questi due numeri interi. Poiché time1 è maggiore di time2, il primo messaggio viene stampato sullo schermo. L'istruzione else è inclusa per una sintassi corretta.

      if (time2> time1) {System.out.println ("la data2 viene dopo la data1"); // stampa perché time2> time1} else {System.out.println ("date2 è precedente o uguale a date1"); }

  5. Fai un confronto "uguale a". Usa il simbolo (==) per confrontare questi due numeri interi. Poiché time1 è uguale a time3, il primo messaggio dovrebbe essere stampato. Se il programma arriva all'istruzione else, significa che i tempi non sono gli stessi.

      if (time1 == time2) {System.out.println ("Le date sono uguali"); } else {System.out.println ("Le date non sono uguali"); // stampa perché time1! = time2}