Дата и время в Java 8. Сравнение даты и времени

июля
08
2014

Содержание

В новом Date Time API также появились удобные методы для сравнения дат и времени: compareTo(), isAfter(), isBefore() и isEqual(). Рассмотрим все эти методы на примерах.


import java.time.*;

public class Main {
	public static void main(String[] args) {
		LocalDateTime date = LocalDateTime.of(2002, Month.JANUARY, 10, 22, 56);
		LocalDateTime sameDate = LocalDateTime.of(2002, Month.JANUARY, 10, 22, 56);
		LocalDateTime dateMinusOneMinute = sameDate.minusMinutes(1);
		LocalDateTime datePlusOneMinute = sameDate.plusMinutes(1);
		ZonedDateTime zonedDate = ZonedDateTime.of(date, ZoneId.of("Brazil/East"));
		
		System.out.println("date: " + date);
		System.out.println("sameDate: " + sameDate);
		System.out.println("dateMinusOneMinute: " + dateMinusOneMinute);
		System.out.println("datePlusOneMinute: " + datePlusOneMinute);
		System.out.println("zonedDate: " + zonedDate);
		System.out.println();
		
		System.out.println("compareTo #1: " + date.compareTo( sameDate ));
		System.out.println("compareTo #2: " + date.compareTo( dateMinusOneMinute ));
		System.out.println("compareTo #3: " + date.compareTo( datePlusOneMinute ));
		System.out.println();
		
		System.out.println("isAfter #1: " + date.isAfter( sameDate ));
		System.out.println("isAfter #2: " + date.isAfter( dateMinusOneMinute ));
		System.out.println("isAfter #3: " + date.isAfter( datePlusOneMinute ));
		System.out.println();
		
		System.out.println("isBefore #1: " + date.isBefore( sameDate ));
		System.out.println("isBefore #2: " + date.isBefore( dateMinusOneMinute ));
		System.out.println("isBefore #3: " + date.isBefore( datePlusOneMinute ));
		System.out.println();
		
		System.out.println("isEqual #1: " + date.isEqual( sameDate ));
		System.out.println("isEqual #2: " + date.isEqual( dateMinusOneMinute ));
		System.out.println("isEqual #3: " + date.isEqual( datePlusOneMinute ));
		System.out.println();
		
		System.out.println("equals #1: " + date.equals( sameDate ));
		System.out.println("equals #2: " + date.equals( zonedDate ));
	}
}

// output:
// date: 2002-01-10T22:56
// sameDate: 2002-01-10T22:56
// dateMinusOneMinute: 2002-01-10T22:55
// datePlusOneMinute: 2002-01-10T22:57
// zonedDate: 2002-01-10T22:56-02:00[Brazil/East]
// 
// compareTo #1: 0
// compareTo #2: 1
// compareTo #3: -1
// 
// isAfter #1: false
// isAfter #2: true
// isAfter #3: false
// 
// isBefore #1: false
// isBefore #2: false
// isBefore #3: true
// 
// isEqual #1: true
// isEqual #2: false
// isEqual #3: false
// 
// equals #1: true
// equals #2: false

Метод compareTo() возвращает:

Метод isAfter() возвращает true ТОЛЬКО тогда, когда дата, метод которой вызывается, находится ПОСЛЕ даты, которая поступает в метод как параметром. Т.е., если для этих же объектов выполнить метод compareTo(), то он вернет 1.

Метод isBefore() возвращает true ТОЛЬКО тогда, когда дата, метод которой вызывается, находится ДО даты, которая поступает в метод как параметр. Т.е., если для этих же объектов выполнить метод compareTo(), то он вернет -1.

Метод isEqual() возвращает true если обе даты одинаковы.

Классы LocalDate и LocalTime имеют аналогичные методы для сравнения дат.

< Дата и время в Java 8. Изменение даты и времени Дата и время в Java 8. Продолжительность, класс Duration >

Напишите первое сообщение!

Вы должны войти под своим аккаунтом чтобы оставлять комментарии