Programming Language/JAVA

[JAVA] java.sql.Date vs java.util.Date

DEV_HEO 2023. 3. 23. 14:41
320x100

spring으로 개발하다 보면 Date 자료형을 써야할 때가 많은데, 

import 하려고 보면 보통 java.sql.Date와 java.util.Date 두가지 타입이 있다.

 

우선 java.sql.Date는 java.util.Date를 상속한 것.

 

java.sql.Date : JDBC등을 이용해서 DB에 격납된 날짜나 시각정보를 데이터로서 추출하거나

- 데이터베이스에 격납할 때의 영역으로 사용하며, 문자열 형식이 "2008-12-30 12:30:20" 와 같은 형태의 데이터

에 특화해서 사용하는데에 적합하다. 

- 연월일시분초등의 요소를 따로 따로 분리하지 않고 하나의 정보로서 다룬다.

- 해당 클래스의 사용 목적은 년도, 월, 일을 유지하는 SQL 데이터를 다루기 위함이다.

- 시간 정보는 다루지 않고 0으로 초기화된다.

 

java.util.Date : 범용적인 날짜, 시각정보를 다루는 경우에 사용하며, 

- 문자열 형식이 "Mon Dec 30 12:30:30 GMT-0700 2008"과 같은 GMT일시를 포함해서 각종 포맷에 대응된다.

- 연, 월, 일, 시, 분, 초 등의 요소를 따로 따로 분리하거나 비교, 계산하는 데도 사용된다.

- Java 8이 도입되면서 java.time 패키지의 사용이 권고된다.

 

시/분/초 정보를 가져오기 위해서는 java.sql.Date가 아닌 java.util.Date를 사용해야한다.

 

(추가 + Date, Calendar, LocalDate 의 차이 https://yhmane.tistory.com/121 )

320x100