У меня есть два экземпляра класса Instant
из java.time
, например:
Instant instant1 = Instant.now();
Instant instant2 = Instant.now().plus(5, ChronoUnit.HOURS);
Теперь я хотел бы проверить, действительно ли два экземпляра Instant
относятся к одной и той же дате (день, месяц и год совпадают). Легко, подумал я, давайте просто воспользуемся новым блестящим LocalDate
и универсальным from
статический метод :
LocalDate localdate1 = LocalDate.from(instant1);
LocalDate localdate2 = LocalDate.from(instant2);
if (localdate1.equals(localdate2)) {
// All the awesome
}
За исключением того, что универсальный метод from
не так уж универсален, и Java жалуется во время выполнения с исключением:
java.time.DateTimeException: Unable to obtain LocalDate from TemporalAccessor: 2014-11-04T18:18:12Z of type java.time.Instant
Что оставляет меня снова на квадрате 1.
Каков рекомендуемый/самый быстрый способ проверить, действительно ли два экземпляра Instant
имеют одинаковую дату (имеют один и тот же день, месяц и год)?
instant1.truncatedTo(ChronoUnit.DAYS)
? Сделайте то же самое на Instant2 и сравните усеченные экземпляры? - person dcsohl   schedule 15.01.2015Instant
вLocalDate
.LocalDate.from
не работает, потому чтоInstant
не включает часовой пояс. - person default locale   schedule 15.01.2015