BackEnd/Java
[Java] java.util.Date를 java.sql.Date로 변환하기
코딩마루
2023. 1. 31. 04:03
1. getTime() 메서드
java.util.Date 객체의 getTime 메서드는 1970년 1월 1일 00시 00분 00초 UTC를 기준으로 경과 한 밀리초를 반환한다. 이 밀리초를 java.sql.Date의 생성자에 전달하게 되면 우리가 원하는 java.sql.Date 객체를 생성할 수 있다. 즉, 방법은 아래와 같다.
public static void main(String[] args) {
java.util.Date utilDate = new java.util.Date();
long milliSeconds = utilDate.getTime();
java.sql.Date sqlDate = new java.sql.Date(milliSeconds);
System.out.println("java.util.Date: "+utilDate); // 결과: Tue Jan 31 03:54:37 KST 2023
System.out.println("java.sql.Date: "+sqlDate); // 결과: 2023-01-31
}
2. SimpleDateFormat 활용
SimpleDateFormat을 활용하면 java.util.Date를 통해 원하는 형태의 문자열을 만들 수 있다. 즉, 우리는 java.sql.Date의 형태에 맞는 문자열을 만들어 java.sql.Date 클래스의 정적 메서드인 valueOf 메서드를 사용하여 java.sql.Date 객체를 생성할 수 있다. 즉, valueOf 메서드는 전달받은 문자열을 통해 Date 타입으로 변환해주는 기능을 수행한다. 예시코드는 아래와 같다.
public static void main(String[] args) {
java.util.Date utilDate = new java.util.Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = simpleDateFormat.format(utilDate);
java.sql.Date sqlDate = java.sql.Date.valueOf(formattedDate);
System.out.println("java.util.Date: "+utilDate); // 결과: Tue Jan 31 04:02:14 KST 2023
System.out.println("java.sql.Date: "+sqlDate); // 결과: 2023-01-31
}