判断LocalTime是否在午夜,可以判断时间是否在23:59和00:01之间。
代码如下:
private final LocalTime ONE_MINUTE_BEFORE_MIDNIGHT = LocalTime.of(23, 59, 0);
private final LocalTime ONE_MINUTE_AFTER_MIDNIGHT = LocalTime.of(0, 1, 0);
public boolean isAtMidnight(LocalTime time) {
return time.isAfter(ONE_MINUTE_BEFORE_MIDNIGHT) || time.isBefore(ONE_MINUTE_AFTER_MIDNIGHT);
}
需要注意的是时间在23:59之后,但在00:01之前这两个条件是或逻辑“||”,而不是与逻辑“&&”。这是因为LocalTime.isAfter() 或者 LocalTime.isBefore()都是假设比较的时间是在同一天。