본문 바로가기

Java/기초

[Java] LocalDateTime

JDK8에서는 기존 java.util.Data, java.util.Calendar 클래스보다 개선된 날짜와 시간 API가 제공된다.

 

JDK의 기본 날짜 클래스의 문제점

1. 불변 객체가 아니다.

set으로 변경이 가능하다는 점은 누군가 악의적으로 변경할 수 있기 때문에 get/set 메서드에서 직접 Date클래스를 사용하는 것이 위험하다.

2. 상수 필드 남용

calendar.add(Calendar.SECOND, 2);

3. 헷갈리는 월 지정

1월을 0으로 표현하는 문제 + Calendar.OCTOBER로 월을 지정하지만 실질적인 값은 9(!=10)인 문제

4. 일관성 없는 요일 상수

어디서는 일요일이 0, 어디서는 일요일이 1

5. Date와 Calendar 객체의 역할 분담

다소 치명적인데 년/월/일 계산은 Date 클래스만으로는 부족해서 왔다갔다 하는 문제가 있다. 또한 Calendar객체를 생성하고 Date 객체를 생성하는 프로세스를 거치기 때문에 번거롭고 생성비용이 비싸다.

6. 기타 java.util.Date 하위 클래스의 문제

 

이러한 문제를 해결하기 위해서 java8부터는 LocalDate, LocalTime, LocalDateTime 이라는 클래스를 만들었다

 

 

출처

https://d2.naver.com/helloworld/645609

https://jeong-pro.tistory.com/163

 

JAVA에서 날짜,시간 제대로 사용하는 LocalDate, LocalTime, LocalDateTime (NTP 시간 서버에서 정확한 시간

아직도 Calendar, Date 사용하니? 자바에서 아직도 Calendar.getInstance해서 시간/날짜를 표현하는 프로그래머가 있을까? 처음 공부할 때나 단순하게 표현해야할 때는 사용할 수 있지만 단점이 극명한 클

jeong-pro.tistory.com

'Java > 기초' 카테고리의 다른 글

[Java] 중첩클래스(Nested Classes)  (0) 2021.09.05
[Java] 익명클래스(Anonymous Classes)  (0) 2021.09.05
[Java] Optional  (0) 2021.08.25
[Java] 입력 뜯어보기(Scanner, InputStream, BufferdReader)  (0) 2021.08.14
[Java] 스트림(Stream)  (0) 2021.08.10