В языке программирования Java есть много способов сравнить две даты. В компьютерах дата представлена числом (тип данных Long) в единицах времени, то есть количеством миллисекунд, прошедших с 1 января 1970 года. В Java Date является объектом, что означает, что он имеет несколько методов сравнения. Любой метод, используемый для сравнения двух дат, по сути, сравнивает единицы времени двух дат.
Шаг
Метод 1 из 4. Использование compareTo
Шаг 1. Используйте compareTo
Объект Date реализует Comparable, поэтому две даты можно сравнивать друг с другом напрямую с помощью метода compareTo. Если обе даты имеют одинаковое число в единицах времени, метод возвращает ноль. Если вторая дата меньше первой, возвращается значение меньше нуля. Если вторая дата больше первой, метод возвращает значение больше нуля. Если обе даты совпадают, метод вернет нулевое значение.
Шаг 2. Создайте несколько объектов Date
Вы должны создать несколько объектов Date перед их сравнением. Один из самых простых способов сделать это - использовать класс SimpleDateFormat. Этот класс упрощает преобразование входного значения даты в объект Date.
SimpleDateFormat sdf = новый SimpleDateFormat ("гггг-ММ-дд"). Чтобы объявить значение в новой «Дата объекта», используйте тот же формат даты при создании даты. Дата 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. Сравните объекты Date
Следующий код покажет вам примеры для каждого случая - меньше, равно и больше чем.
date1.compareTo (date2); // date1 <date2, возвращает значение меньше 0 date2.compareTo (date1); // date2> date1, возвращает значение больше 0 date1.compareTo (date3); // date1 = date3, поэтому на консоль выводится 0
Метод 2 из 4: Использование Equals, After и Before
Шаг 1. Используйте равно, после и до
Даты можно сравнивать с помощью методов равно, после и до. Если две даты имеют одинаковое значение во времени, метод equals возвращает true. В следующем примере будет использоваться объект Date, созданный в примере метода compareTo.
Шаг 2. Сравните с предыдущим методом
В следующем коде показан пример случая, который возвращает true и false. Если date1 является датой до date2, метод before возвращает true. В противном случае метод before возвращает false.
System.out.print (date1.before (date2)); // отображаем значение '' true '' System.out.print (date2.before (date2)); // возвращаем значение false
Шаг 3. Сравните, используя метод после
В следующем коде показан пример случая, который возвращает true и false. Если date2 является датой после date1, метод after возвращает true. В противном случае метод after вернет false.
System.out.print (date2.after (date1)); // отображаем значение '' true '' System.out.print (date1.after (date2)); // отображаем значение '' false ''
Шаг 4. Сравните с методом равенства
В следующем коде показан пример случая, который возвращает true и false. Если обе даты равны, метод equals возвращает true. В противном случае метод equals возвращает false.
System.out.print (date1.equals (date3)); // отображаем значение '' true '' System.out.print (date1.equals (date2)); // отображаем значение '' false ''
Метод 3 из 4: Использование календаря класса
Шаг 1. Используйте Календарь занятий
Класс Calendar также имеет методы compareTo, equals, after и before, которые работают так же, как описанные ранее для класса Date. Поэтому, если информация о дате хранится в календаре класса, вам не нужно извлекать дату только для сравнения.
Шаг 2. Создайте экземпляр календаря
Чтобы использовать методы в Class Calendar, вы должны создать несколько экземпляров Calendar. К счастью, вы можете использовать значения из ранее созданного экземпляра 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);
Шаг 3. Сравните cal1 и cal2, используя предыдущий метод
Следующий код выведет значение tr
System.out.print (cal1.before (cal2)); // вернет значение '' true ''
Шаг 4. Сравните cal1 и cal2, используя метод after
Следующий код вернет false, потому что cal1 - это дата до cal2.
System.out.print (cal1.after (cal2)); // возвращаем значение false
Шаг 5. Сравните cal1 и cal2, используя метод equals
В следующем коде будет показан пример случая, который возвращает истину и ложь. Состояние зависит от сравниваемого экземпляра Calendar. Следующий код вернет значение «истина», а затем «ложь» в следующей строке.
System.out.println (cal1.equals (cal3)); // возвращаем значение '' true '': cal1 == cal3 System.out.print (cal1.equals (cal2)); // возвращаем значение false: cal1! = cal2
Метод 4 из 4: Использование getTime
Шаг 1. Используйте getTime
Вы также можете напрямую сравнить значения единиц времени двух дат, хотя предыдущие два метода могут быть более удобными для чтения и предпочтительными. Таким образом вы будете сравнивать 2 примитивных типа данных, поэтому вы можете использовать операнды «» и «==».
Шаг 2. Создайте объект времени в формате длинных чисел
Прежде чем вы сможете сравнивать даты, вы должны создать длинное целое число из ранее созданного объекта Date. К счастью, это сделает за вас метод getTime ().
long time1 = getTime (дата1); // объявляем примитив time1 для date1 long time2 = getTime (date2); // объявляем примитивное значение time2 для 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 ("1-е не то же самое, что 2-е"); // будет отображаться, потому что time1! = time2}