Java LocalDate / LocalDateTime - 之间的小时数

Java LocalDate / LocalDateTime - Hour Between

我怎么知道两个时间表之间是否有一个小时?

示例:

10:00 is between 8:00 and 12:00?
7:30 is between 8:00 and 12:00?

我正在尝试这样:

LocalDateTime s = LocalDateTime.of (2017, 10, 20, 8, 00);
LocalDateTime f = LocalDateTime.of (2017, 10, 20, 12, 00);

LocalDate test = LocalDate.of (2017, 10, 20, 10, 00); (<- Must be LocalDate)

if ((test.isAfter (s)) && (test.isBefore (s))
   return true;
else
   return false;

它返回以下错误:

The method isBefore (ChronoLocalDateTime ) In the type LocalDateTime is not applicable for the arguments (LocalTime)

然后去LocalDates;也许用 !after 而不是 before.

return test.isAfter(s.toLocalDate()) && test.isBefore(f.toLocalDate());

如果您只对时间感兴趣,为什么要包含日期?

LocalTime s = LocalTime.of (8, 0);
LocalTime f = LocalTime.of (12, 0);

LocalTime test = LocalTime.of (10, 0);

if (test.isAfter (s) && test.isBefore (f))

如果您收到 LocalDateTime,您可以致电 ldt.toLocalTime()

你的问题是错误的,因为代码甚至没有编译,但我猜你正在寻找 LocalDate 对象上的以下方法:

  • atStartOfDay()LocalDate 转换为 LocalDateTime,时间为 00:00

  • atTime(int hour, int minute) 根据提供的时间将 LocalDate 转换为 LocalDateTime