2

以下のコードで場所の日時を取得しています

        ZoneId zoneId = ZoneId.of("America/New_York");
        ZonedDateTime dateAndTimeForAccount = ZonedDateTime.ofInstant(now, zoneId);
        System.out.println(dateAndTimeForAccount);

dateAndTimeForAccount午前 6 時から午前 10 時の間であるかどうかを確認するにはどうすればよいですか?

4

3 に答える 3

0
int currentHour = dateAndTimeForAccount.getHour();
boolean isBetween6And10 = 6 <= currentHour && currentHour <= 10;

特定の java.time クラスに対して一般化する場合は、次のクラスを使用できますTemporalQuery

class HourTester extends TemporalQuery<Boolean> {
    @Override
    public Boolean queryFrom(TemporalAccessor temporal) {
        int hour = temporal.get(ChronoField.HOUR_OF_DAY);
        return 6 <= hour && hour <= 10;
    }
}

使用法:boolean isBetween6And10 = dateAndTimeForAccount.query(new HourTester());

于 2017-01-11T12:23:58.243 に答える