[Java] 날짜/시간 표현 시 Date , Calendar자제해야 하는 이유

Ceing·2024년 4월 1일

Java

목록 보기
4/8
post-thumbnail

Java 시간/날짜 API 역사

  • JDK 1.0 : java.util.Date : 유일한 시간/날짜 API
  • JDK 1.1 : java.util.Calendar : 날짜 간 연산 , 국제화 지원 등의 기능을 java.util.Calendar이 맡게 됨
  • JDK 1.8(JSR-310) : java.time

자바 8 이후 사용 가능한 java.time

오픈소스 JodaTime의 영향을 강하게 받아 탄생한 java.time 패키지는 Java8부터 사용이 가능
LocalDate , LocalTime , LocalDateTime을 가짐


LocalDate : 년 , 월 , 일
LocalTime : 시 , 분 , 초 , 나노초
LocalDateTime : 년 , 월 , 일 , 시 , 분 , 초 , 나노초(LocalDate + LocalTime)

정말 직관적이게도 LocalDate는 날짜(Date)에 관한 정보 , LocalTime은 시간(Time)에 관한 정보 , LocalDateTime은 둘 다(DateTime) 제공한다.


java.time vs java.util.Date & java.util.Calendar

java.time : 불변 객체
java.util.Date & java.util.Calendar : 불변 객체가 아님
==> 즉 java.util 클래스들보다 사용하기 훨씬 안전하고 메서드 체이닝을 지원하므로 코드를 훨씬 깔끔하고 직관적으로 짤 수 있음

profile
이유에 대해 끊임없이 생각하고 고민하는 개발자

0개의 댓글