Сравнете дати в Java

Автор: Roger Morrison
Дата На Създаване: 24 Септември 2021
Дата На Актуализиране: 1 Юли 2024
Anonim
Урок по Java 48: Даты, календари и время.
Видео: Урок по Java 48: Даты, календари и время.

Съдържание

Има няколко начина за сравняване на дати в Java. Вътрешно датата се представя като (дълъг) момент във времето - броят на милисекундите, изминали от 1 януари 1970 г. В Java датата е обектът Date, което означава, че съдържа множество методи за сравняване на дати. Всеки метод за сравняване на две дати основно ще сравнява изминалото време на двете дати.

Стъпвам

Метод 1 от 4: Използване на командата "compareTo"

  1. Използвайте compareTo. Date реализира ComparableDate> и така две дати могат да бъдат директно сравнени помежду си, използвайки метода compareTo. Ако датите показват един и същ момент във времето, методът ще върне нула. Ако датата, която се сравнява, е преди аргумента за дата, тогава ще бъде върната отрицателна стойност. Ако датата, която се сравнява, е по-късна от тази на аргумента за дата, тогава ще бъде върната положителна стойност. Ако датите са еднакви, ще бъде върната нула.
  2. Създайте обектите Date. Ще трябва да създадете всеки обект за дата, преди да можете да започнете да ги сравнявате. Един от начините да направите това е да приложите класа SimpleDateFormat. Това ви позволява лесно да въвеждате дати в обекти Date.

      SimpleDateFormat sdf = нов SimpleDateFormat ("гггг-MM-dd"); // За деклариране на стойности в нови обекти с дата.Използвайте същия формат на дата, когато създавате дати Date date1 = sdf.parse ("1995-02-23"); // date1 е 23 февруари 1995 г. Date date2 = sdf.parse ("2001-10-31"); // date2 е 31 октомври 2001 г. Date date3 = sdf.parse ("1995-02-23"); // date3 е 23 февруари 1995 г.

  3. Сравнете обектите за дата. По-долу е показан всеки случай - по-малко от, равно на и по-голямо от.

      date1.compareTo (date2); // date1 date2, по-малко от 0 date2.compareTo (date1); // date2> date1, връща по-голямо от 0 date1.compareTo (date3); // date1 = date3, връща 0

Метод 2 от 4: Използване на методите "е равно, след и преди"

  1. Използвайте равно, след и преди. Датите могат да се сравняват помежду си, като се използват методите equals, after и before. Ако две дати показват едно и също време, методът equals ще върне „true“. Примерите използват предварително създадените дати чрез метода compareTo.
  2. Сравнете, използвайки метода преди. Кодът по-долу показва случай на вярно и невярно. Ако date1 е по-рано от date2, резултатът е верен. Ако не, преди връща false.

      System.out.print (date1.before (date2)); // отпечатваме true System.out.print (date2.before (date2)); // отпечатвам false

  3. Сравнете това с метода after. Кодът по-долу показва случай на вярно и невярно. Ако date2 е по-късно от date1, тогава след връща true. Ако не, след връща false.

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

  4. Сравнете, използвайки метода на равни. Кодът по-долу показва случай на вярно и невярно. Ако датите са еднакви, equals връща true. Ако не, равното връща false.

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

Метод 3 от 4: Използване на клас Календар

  1. Използвайте класа Календар. Класът Календар също има методите compareTo, equals, after и before, които работят по същия начин, както е описано по-горе за класа дата. Така че, ако данните за датата се съхраняват в календар, няма нужда да се извлича „дата“, а само да се сравнят две дати.
  2. Създайте екземпляр на Календар. За да използвате методите на календара, имате нужда от някои копия на календара. За щастие можете да използвате времето, генерирано от инстанциите Date.

      Календар cal1 = Calendar.getInstance (); // декларира cal1 Calendar cal2 = Calendar.getInstance (); // декларира cal2 Календар cal3 = Calendar.getInstance (); // декларира cal3 cal1.setTime (date1); // прилага дата към cal1 cal2.setTime (date2); cal3.setTime (дата3);

  3. Сравнете cal1 и cal2, използвайки преди. Кодът по-долу връща true, защото cal1 е по-рано от cal2.

      System.out.print (cal1.before (cal2)); // отпечатвам true

  4. Сравнете cal1 и cal2, като използвате след. Кодът по-долу връща false, тъй като cal1 е по-рано от cal2.

      System.out.print (cal1.after (cal2)); // отпечатвам false

  5. Сравнете cal1 и cal2, използвайки равно. Кодът по-долу показва пример както за true, така и за false. Условието зависи от екземплярите на календара, които се сравняват. Кодът по-долу връща „true“ и след това „false“ на следващия ред.

      System.out.println (cal1.equals (cal3)); // отпечатвам true: cal1 == cal3 System.out.print (cal1.equals (cal2)); // отпечатване на false: cal1! = cal2

Метод 4 от 4: Използване на метода "getTime"

  1. Използвайте getTime. Възможно е също така директно да се сравнят две времеви точки, въпреки че всеки от предходните подходи е вероятно да даде по-четливи резултати и по този начин е предпочитан. Това е сравнение на два примитивни типа данни, така че може да се направи с "", ">" и "==".
  2. Създайте "дългите" обекти във времето. Преди да можете да сравните дати, трябва да създадете дълги цели числа от данните на предварително създадените обекти Date. За щастие методът getTime () ще свърши по-голямата част от работата вместо вас.

      дълго време1 = getTime (дата1); // декларира примитивно време1 на date1 long time2 = getTime (date2); // декларира примитивно време2 от date2

  3. Използвайте уравнение „по-малко от“. Използвайте символ „по-малко от“ (), за да сравните тези две цели числа. Тъй като time1 е по-малко от time2, първото съобщение трябва да бъде отпечатано на екрана. Операторът else е включен за правилния синтаксис.

      if (time1 time2) {System.out.println ("date1 е по-рано от date2"); // отпечатваме, защото time1 time2} else {System.out.println ("date1 е по-късно или равно на date2"); }

  4. Направете сравнение „по-голямо от“. Използвайте символа "по-голямо от" (>), за да сравните тези две цели числа. Тъй като time1 е по-голям от time2, първото съобщение се отпечатва на екрана. Операторът else е включен за правилен синтаксис.

      if (time2> time1) {System.out.println ("date2 идва след date1"); // отпечатваме, защото time2> time1} else {System.out.println ("date2 е по-ранна или равна на date1"); }

  5. Направете сравнение „равно на“. Използвайте символа (==), за да сравните тези две цели числа. Тъй като time1 е равно на time3, първото съобщение трябва да бъде отпечатано. Ако програмата стигне до оператора else, това означава, че времената не са еднакви.

      if (time1 == time2) {System.out.println ("Датите са равни"); } else {System.out.println ("Датите не са равни"); // отпечатваме, защото time1! = time2}