본문 바로가기
Java

LocalDate to LocalDateTime

by BAYABA 2021. 10. 25.
  1. 개인 공부 목적으로 작성한 글입니다.
  2. 아래 출처를 참고하여 작성하였습니다.

목차

  1. Intro
  2. LocalDate
  3. LocalDateTime
  4. LocalDate to LocalDateTime

1. Intro

  1. 포스팅 작성이유
  • 오늘 날짜에 범위에 대한 Timestamp값을 받아온 뒤 DB를 조회하는데 오늘 날짜 데이터가 조회 안되는 문제가 있었습니다.
  • 즉, 2021-10-25 00:00:00 ~ 2021-10-25 23:59:59로 조회 시 2021-10-25일 데이터가 조회되지 않습니다.
  • 원인은 Timestamp를 LocalDate로 변환하면서 TimeZone 정보가 절삭되었습니다.

2. LocalDate

  1. 아래와 같은 설명처럼 LocalDate는 yyyy-MM-dd에 대한 정보만 가져옵니다.
  • The LocalDate represents only the date without time and zone id
  • 그러므로 DB timestamp 값으로 HH:mm:ss 값까지 저장하고 있다면 LocalDateTime으로 쿼리를 걸어야 합니다.

3. LocalDateTime

  1. 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

  1. .atStartOfDay()
  • 날짜 + 00:00:00.00000000을 의미합니다.
  1. .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
   }
}

출처

  1. Java – Convert LocalDate to LocalDateTime
  2. How to obtain the end of the day when given a LocalDate?

'Java' 카테고리의 다른 글

yyyy vs YYYY  (0) 2021.10.26
Enum  (0) 2021.10.19
인터페이스의 default, static 키워드(Java8)  (0) 2021.10.05