LocalDate와 LocalDateTime은 Java 8의 새로운 Date-Time API의 일부로, 날짜와 시간을 다루는 데 사용되는 클래스입니다. 두 클래스 사이의 주요 차이점은 다음과 같습니다:
LocalDate는 날짜만 표현합니다. 연, 월, 일을 포함하며, 시간 정보는 포함하지 않습니다. 따라서 시간대 정보도 포함하지 않습니다. 이는 날짜를 저장하거나 날짜 간의 차이를 계산할 때 유용합니다.
LocalDateTime은 날짜와 시간을 모두 포함합니다. 연, 월, 일, 시, 분, 초, 나노초까지 표현할 수 있습니다. 하지만 시간대 정보는 포함하지 않습니다. 이는 특정 날짜와 시간을 정확히 표현할 때 사용됩니다.
LocalDate를 LocalDateTime으로 변환하려면, LocalDate 인스턴스에서 시간 정보를 추가해야 합니다. 이를 위해 LocalDate 클래스는 다음과 같은 메서드를 제공합니다:
atStartOfDay(): 주어진 날짜의 시작 시간(00:00)을 반환합니다.atTime(LocalTime time): 주어진 LocalTime 객체를 사용하여 LocalDateTime 인스턴스를 반환합니다.atTime(int hour, int minutes): 시간과 분을 인수로 받아 LocalDateTime 인스턴스를 반환합니다.atTime(int hour, int minutes, int seconds): 시간, 분, 초를 인수로 받아 LocalDateTime 인스턴스를 반환합니다.atTime(int hour, int minute, int second, int nanoOfSecond): 시간, 분, 초, 나노초를 인수로 받아 LocalDateTime 인스턴스를 반환합니다.반대로, LocalDateTime을 LocalDate로 변환하려면 toLocalDate() 메서드를 사용합니다. 이 메서드는 LocalDateTime 객체에서 연, 월, 일 정보만을 추출하여 LocalDate 인스턴스를 반환합니다.
예를 들어, LocalDate 인스턴스를 LocalDateTime으로 변환하는 방법은 다음과 같습니다:
LocalDate localDate = LocalDate.parse("2019-01-04");
// 날짜의 시작 시간
LocalDateTime localDateTime1 = localDate.atStartOfDay();
System.out.println(localDateTime1); // 2019-01-04T00:00
// 현재 시간
LocalDateTime localDateTime2 = localDate.atTime(LocalTime.now());
System.out.println(localDateTime2); // 예시: 2019-01-04T18:31:21.936
// 특정 시간
LocalDateTime localDateTime3 = localDate.atTime(4, 30, 56);
System.out.println(localDateTime3); // 2019-01-04T04:30:56
LocalDateTime을 LocalDate로 변환하는 방법은 다음과 같습니다:
LocalDateTime localDateTime = LocalDateTime.now();
LocalDate localDate = localDateTime.toLocalDate();
System.out.println(localDate); // 예시: 2019-04-01
이러한 변환 메서드를 사용하면, 필요에 따라 날짜와 시간 정보를 유연하게 다룰 수 있습니다
인용:
[1] https://sunghs.tistory.com/128
[2] https://cornswrold.tistory.com/489
[3] https://ynzu-dev.tistory.com/entry/Java-%EB%82%A0%EC%A7%9C-%EB%B9%84%EA%B5%90-%ED%95%98%EA%B8%B0-Date-LocalDateTime-LocalDate
[4] https://howtodoinjava.com/java/date-time/localdate-localdatetime-conversions/
[5] https://hianna.tistory.com/611
[6] https://adorecamus.tistory.com/entry/Java-Date-Calendar%EC%99%80-LocalDate-LocalDateTime-%EC%B0%A8%EC%9D%B4
[7] https://www.daleseo.com/java8-local-date-time/
[8] https://stackoverflow.com/questions/57340152/difference-between-two-localdate
[9] https://www.baeldung.com/java-date-to-localdate-and-localdatetime
[10] https://umanking.github.io/2020/05/09/java-date-time/
[11] https://developer-talk.tistory.com/643
[12] https://sowon-dev.github.io/2020/08/05/200806javai/
[13] https://europani.github.io/java/2021/10/05/021-localDateTime.html
[14] https://carpet-part1.tistory.com/710
[15] https://dadadamarine.github.io/java/algorithm/2019/03/17/%EC%9E%90%EB%B0%94-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-DATE%EC%A0%95%EB%A6%AC.html