There are numerous answers given but I am unable to find compatible with my situation. I need to find difference of 8 hours in time as well as on date change too. Like if time is greater then 8 hours then do not execute something .
Do we have any method which achieve the same in LocalDateTime in Java-8?
I have tried to use following but unable to achieve the same.
LocalDateTime fromDateTime = LocalDateTime.of(2017, 07, 07, 07, 00, 55); LocalDateTime toDateTime = LocalDateTime.now(); LocalDateTime tempDateTime = LocalDateTime.from(fromDateTime); long years = tempDateTime.until(toDateTime, ChronoUnit.YEARS); tempDateTime = tempDateTime.plusYears(years); long months = tempDateTime.until(toDateTime, ChronoUnit.MONTHS); tempDateTime = tempDateTime.plusMonths(months); long days = tempDateTime.until(toDateTime, ChronoUnit.DAYS); tempDateTime = tempDateTime.plusDays(days); long hours = tempDateTime.until(toDateTime, ChronoUnit.HOURS); tempDateTime = tempDateTime.plusHours(hours); long minutes = tempDateTime.until(toDateTime, ChronoUnit.MINUTES); tempDateTime = tempDateTime.plusMinutes(minutes); long seconds = tempDateTime.until(toDateTime, ChronoUnit.SECONDS); System.out.println("" + java.time.Duration.between(tempDateTime, toDateTime).toHours()); System.out.println(years + " years " + months + " months " + days + " days " + hours + " hours " + minutes + " minutes " + seconds + " seconds."); It is difficult to check on time and date separately.
Initially I coded it like but it does not looks correct:
return openBrat!=null && openBrat.until(LocalDateTime.now(), ChronoUnit.DAYS) == 0 && openBrat.until(LocalDateTime.now(), ChronoUnit.HOURS) >= 8 && openBrat.until(LocalDateTime.now(), ChronoUnit.Minutes) >= 0; Could anyone please suggest how to subtract like:
2017 07 06 23:30:00 - 2017 07 07 01:30:00 - Should return 2 hours.
ChronoUnit.HOURS.between(date1, date2)LocalDateTimepurposely has no concept of time zone? So using that class means you will be ignoring any anomalies such as Daylight Saving Time (DST). If you want to account for such realities, useZonedDateTime.