Java
LocalDate to LocalDateTime
by BAYABA
2021. 10. 25.
- 개인 공부 목적으로 작성한 글입니다.
- 아래 출처를 참고하여 작성하였습니다.
목차
- Intro
- LocalDate
- LocalDateTime
- LocalDate to LocalDateTime
1. Intro
- 포스팅 작성이유
- 오늘 날짜에 범위에 대한 Timestamp값을 받아온 뒤 DB를 조회하는데 오늘 날짜 데이터가 조회 안되는 문제가 있었습니다.
- 즉, 2021-10-25 00:00:00 ~ 2021-10-25 23:59:59로 조회 시 2021-10-25일 데이터가 조회되지 않습니다.
- 원인은 Timestamp를 LocalDate로 변환하면서 TimeZone 정보가 절삭되었습니다.
2. LocalDate
- 아래와 같은 설명처럼 LocalDate는 yyyy-MM-dd에 대한 정보만 가져옵니다.
- The LocalDate represents only the date without time and zone id
- 그러므로 DB timestamp 값으로 HH:mm:ss 값까지 저장하고 있다면 LocalDateTime으로 쿼리를 걸어야 합니다.
3. LocalDateTime
- LocalDateTime은 LocalDate 정보에 time 정보까지 담고 있습니다.
- The LocalDate represents only the date without time and zone id, while the LocalDateTime represents date with time
4. LocalDate to LocalDateTime
- .atStartOfDay()
- 날짜 + 00:00:00.00000000을 의미합니다.
- .atTime(LocalTime.MAX)
- 날짜 + 23:59:59.99999999를 의미합니다.
import java.time.LocalDate;
import java.time.LocalDateTime;
public class Example {
public static void main(String[] args) {
LocalDate date = LocalDate.parse("2021-10-25");
/* Converting the LocalDate to LocalDateTime using
* atStartOfDay() method. This method adds midnight
* time (start of the day time) with the local date.
*/
LocalDateTime localDateTime1 = date.atStartOfDay(); // 2021-10-25 00:00:00.00000000
LocalDateTime localDateTime1 = date.atTime(LocalTime.MAX) // 2021-1025 23:59:59.999999
}
}
출처
- Java – Convert LocalDate to LocalDateTime
- How to obtain the end of the day when given a LocalDate?