본문 바로가기
IT/Java

java.util.Date / java.sql.Date 차이

by 성준하이 2023. 12. 5.
반응형

자바에서 항상 Date를 사용할 경우 import 에서 잠깐 고민이 되고 머뭇거릴때가 있다.

이유는 제목에서 처럼 Date 가 두가지가 존재하기 때문이다.

의미상이라면 어떤 클래스를 사용하든 상관없지만,

둘의 차이는 엄연히 존재한다.

 

java.util.Date

유닉스 시간(1970년 1월 1일 00:00:00 GMT)으로 부터 지정된 시간(milliseconds)을 년/월/일/시/분/초의 형태로 갖고 있다.

자바 11기준으로는 아래와 같이 생성자들이 존재한다.

Date()
Date(long date)
Date(int year, int month, int date)
Date(int year, int month, int date, int hrs, int min)
Date(int year, int month, int date, int hrs, int min, int sec)
Date(String s)

하지만 자바8부터 java.time의 사용이 권고 되면서 이 Date 클래스는 더이상 사용을 권고하지 않는다.

 

java.sql.Date

java.util.Date를 상속받으며 SQL Date 값으로 식별할 수 있도록 년/월/일의 정보를 갖고 있다.

생성자는 아래와 같다.

Date(int year, int month, int day)
Date(long date)

그리고 해당 값은 데이터베이스를 다룰때 사용이 되어야한다.

즉 DTO등에서 사용이 유용하다.

반응형

댓글