[Java Project] LocalDate와 LocalDateTime 선택

Erin Lee·2024년 3월 13일
0

Project

목록 보기
1/7
post-thumbnail

LocalDate, LocalDateTime


Java에는 시간을 나타내는 객체가 여러가지가 있다.
LocalDate, LocalDateTime, TimeStamp 등이 있는데 프로젝트를 하면서 어떻게 사용할지 고민이 되어 알아보았다.

LoalDate와 LocalDateTimedms Java 8 버전부터 나온 데이터 타입이다.

기존에 사용된 java.util.Date, java.sql.Date 타입은 클래스 명이 동일하고 변경이 가능한 클래스로 스레드로부터 안전하지 않았다.

또한 java.util.Date 클래스는 특정 시점을 날짜가 아닌 밀리초 단위로 표현되는 등 표현하는 방식이 직관적이지 않으며 자체적으로 시간대를 불러오지 못하는 클래스였다.

이러한 문제점들을 보완하여 등장한 것이 LocalDate와 LocalTime, LocalDateTime 클래스이다.

LocalDateLocalDateTime
yyyy-MM-dd 형식이다.yyyy-MM-dd-HH-mm-ss.zzz 형식이다.
변경할 수 없는 클래스로 스레드로부터 안전하다.변경할 수 없는 클래스로 스레드로부터 안전하다.

TimeStamp vs LocalDateTime

TimeStamp는 LocalDateTime 타입과 동일하게 년월일, 시분초 UTC 형식이며 본래는 Long 타입을 toString() 메서드를 사용하여 DateTimeFormatter로 형식을 변환하여 보여주는 방식이다.
Long 타입이기 때문에 연산이 빠르다.


결론

⇒ LocalDate와 LocalDateTime중에는 시간, 초까지 다루기 때문에 LocalDateTime을 선택하였고 UTC 형식으로 시간을 저장해야하는 경우나 연산이 필요한 작업에서는 TimeStamp를 사용되지만 Daily 프로젝트는 글로벌 서비스가 아니고 연산 작업이 아닌 소모임 날짜 등 특정 지정 날짜를 표시하는데 사용되기 때문에 LocalDateTime이 적합하다고 판단하였다.

profile
내가 설명할 수 있어야 비로소 내가 아는 것이다

0개의 댓글