Javaで1日の始まりと終わりを取得します。
LoalDateから取得する場合
LocalTime.MIN
とLocalTime.MAX
を使います。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate date = LocalDate.parse("2021-11-01", formatter); LocalDateTime startOfDay = date.atTime(LocalTime.MIN); // 2021-11-01T00:00 LocalDateTime endOfDay = date.atTime(LocalTime.MAX); // 2021-11-01T23:59:59.999999999
LocalDateTimeから取得する場合
LocalDateTime
はtoLocalDate()
で一旦LocalDate
に変換してから、上記と同様にLocalTime.MIN
とLocalTime.MAX
を使います。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime datetime = LocalDateTime.parse("2021-11-01 12:15:30", formatter); LocalDateTime startOfDay = datetime.toLocalDate().atTime(LocalTime.MIN); // 2021-11-01T00:00 LocalDateTime endOfDay = datetime.toLocalDate().atTime(LocalTime.MAX); // 2021-11-01T23:59:59.999999999