4 начина да сравните две дати в Java

Съдържание:

4 начина да сравните две дати в Java
4 начина да сравните две дати в Java

Видео: 4 начина да сравните две дати в Java

Видео: 4 начина да сравните две дати в Java
Видео: Create Stunning KDP Book Covers That Sell 2024, Април
Anonim

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

Стъпки

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

4301351 1
4301351 1

Стъпка 1. Използвайте compareTo

Дата изпълнява Comparable и така две дати могат да бъдат сравнени директно с метода compareTo. Ако датите са за един и същ момент, методът връща нула. Ако сравняваната дата е преди аргумента за дата, се връща стойност по -малка от нула. Ако датата, която се сравнява, е след аргумента за дата, се връща стойност, по -голяма от нула. Ако датите са равни, се връща стойност 0.

4301351 2
4301351 2

Стъпка 2. Създайте обекти за дата

Ще трябва да създадете всеки обект за дата, преди да започнете да ги сравнявате. Един от начините да направите това е да използвате класа SimpleDateFormat. Тя позволява лесно въвеждане на стойности на дата в обекти на дата.

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

4301351 3
4301351 3

Стъпка 3. Сравнете обектите за дата

Кодът по -долу ще ви покаже всеки случай - по -малък, равен и по -голям от.

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

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

4301351 4
4301351 4

Стъпка 1. Използвайте равни, след и преди

Датите могат да се сравняват с равни, след и преди методите. Ако две дати са за един и същ момент, методът equals ще върне true. Примерите ще използват предварително създадени дати от метода compareTo.

4301351 5
4301351 5

Стъпка 2. Сравнете, като използвате метода преди

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

    System.out.print (date1.before (date2)); // отпечатва истински System.out.print (date2.before (date2)); // отпечатва невярно

4301351 6
4301351 6

Стъпка 3. Сравнете, като използвате метода after

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

    System.out.print (date2.after (date1)); // отпечатва истинска System.out.print (date1.after (date2)); // отпечатва невярно

4301351 7
4301351 7

Стъпка 4. Сравнете по метода на равното

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

    System.out.print (date1.equals (date3)); // отпечатва истински System.out.print (date1.equals (date2)); // отпечатва невярно

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

4301351 8
4301351 8

Стъпка 1. Използвайте календара

Класът на календара също има сравняващи, равни, след и преди методи, които работят по същия начин, както е описано по -горе за класа на датата. Така че, ако информацията за датата се съхранява в календар, няма нужда да извличате датата само за да извършите сравнение.

4301351 9
4301351 9

Стъпка 2. Създайте екземпляри на Календар

За да използвате методите на календара, ще ви трябват няколко екземпляра на календара. За щастие можете просто да вземете времената от вече създадените екземпляри на Date.

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

4301351 10
4301351 10

Стъпка 3. Сравнете cal1 и cal2 с преди

Кодът по -долу трябва да отпечата true, тъй като cal1 е преди cal2.

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

4301351 11
4301351 11

Стъпка 4. Сравнете cal1 и cal2 с помощта на after

Кодът по -долу трябва да отпечата false, тъй като cal1 е преди cal2.

    System.out.print (cal1.after (cal2)); // отпечатва невярно

4301351 12
4301351 12

Стъпка 5. Сравнете cal1 и cal2, като използвате равни

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

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

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

4301351 13
4301351 13

Стъпка 1. Използвайте getTime

Възможно е също така директно да се сравни моментът от две дати, въпреки че всеки от предишните подходи е вероятно да бъде по -четлив и толкова за предпочитане. Това ще бъде сравнение на два примитивни типа данни, така че може да се направи с "" и "==".

4301351 14
4301351 14

Стъпка 2. Създайте дългосрочни обекти

Преди да можете да сравните датите, трябва да създадете дълги цели числа с данните от предварително създадените обекти Date. За щастие, методът getTime () ще свърши по -голямата част от работата вместо вас.

    дълго време1 = getTime (дата1); // обявява примитивно време1 от дата1 дълго време2 = getTime (дата2); // обявява примитивно време2 от дата2

4301351 15
4301351 15

Стъпка 3. Направете сравнение по -малко

Използвайте символа по -малко (<), за да сравните тези две цели числа. Тъй като time1 е по -малко от time 2, първото съобщение трябва да се отпечата. Изразът else е включен за правилен синтаксис.

    if (time1 <time2) {System.out.println ("date1 е преди date2"); // ще отпечатва от time1 <time2} else {System.out.println ("date1 не е преди date2"); }

4301351 16
4301351 16

Стъпка 4. Направете повече от сравнение

Използвайте символа по -голям от (>), за да сравните тези две цели числа. Тъй като time1 е по -голямо от time 2, първото съобщение трябва да се отпечата. Изразът else е включен за правилен синтаксис.

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

4301351 17
4301351 17

Стъпка 5. Направете сравнение равно

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

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

Препоръчано: