TIL 열두번째날, 오늘도 새로 학습한 내용을 적어보자.
습득한 지식 및 내용
java.sql.Date
and java.util.Date
java.sql.Date
: 유닉스 시간(1990년 1월 1일 00:00:00 GMT)으로 부터 지정된 시간을 년/월/일/시/분/초의 형태로 갖고 있음
: 시/분/초에 대한 내용없음
: 오라클의 날짜 타입과 연동 가능
java.util.Date
: java.util.Date를 상속받으며 SQL Date 값으로 식별할 수 있도록 년/월/일의 정보를 갖고 있음
: 시/분/초에 대한 내용있음
: 오라클의 날짜 타입과 연동 불가능
문제 상황: java.sql.Date
를 사용해서 날짜를 받아와도 정렬을 할 때는 시간까지 고려하는 현상 발생
: 원인 -> java.sql.Date
객체를 비교하거나 정렬할 때는 내부 타임스탬프 값을 사용하므로 시간 정보가 포함되어 있는 경우 이를 기반으로 비교가 이루어짐
: 해결방법 -> 날짜를 String으로 받아와 아래와 같이 SimpleDateFormat
을 사용해 Date 형식으로 반환하여 정렬
Date today = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
Date dateFormatValue = format.parse(today);