[JAVA] 날짜,시간 비교- Date, LocalDateTime 차이 :: zeroOne
728x90

날짜 관련 데이터를 매핑하다가 이걸 String 으로 해야할지 ,Date으로해야할지 LocalDateTime 으로 해야할지 궁금해졌다.

 

우선 String이나 Long 으로 받아도 데이터 매핑은 가능하다 하지만 데이터가 

2022-02-09 14:43:45.990000

이런식으로 들어가 있으면 데이터를 다시 조작해야하는 굉장히 골치가아픈일이 발생한다.

 

그래서 Date이나 LocalDateTime을 이용해야 하는데 

두가지가 무슨차이인지 조금 의문이었다.

 

 

결론적으로

Date,Calrendar 클래스 사용시의문제점

  • 월값이 0부터 시작한다 (1월 ->0)
  • 다른 언어와 달리 기본날짜, 시간 클래스가 불변객체가 아니다
  • private final 로 지정해둔 Date을 사용하는등 방어복사기법이 필요하다.
  • 특정 시간대의 날짜를 생성하거나, 년/월/일을 통한 날짜연산을 위해서는 Date클래스와 Calenmdar클래스를 함께 사용해야한다.
  • 중간 객체를 사용하는것 자체도 불편하며 Calendar객체의 생산비용이 비싼편이다.
  • 이외에도 여러 상수 필드를 사용하여 잘못된 입력에도 오류가 발생하지 않는등의 불편함이 있다.

 

이런 많은 문제가 있다고한다 .

그렇기 때문에 자바 8부터 출시된 java.time(joda.time) 을 이용하면 된다. 

728x90

'개발 > JAVA' 카테고리의 다른 글

[JAVA] stream entrySet, keySet  (0) 2022.03.25
[JAVA] public private 접근제어자 간단한설명  (0) 2022.03.18
[JAVA] :: 더블콜론  (0) 2022.02.24

+ Recent posts