SeouliteLab

[Java/자바] java.util.Date를 java.sql.Date로 변환하는 방법 본문

프로그래밍

[Java/자바] java.util.Date를 java.sql.Date로 변환하는 방법

Seoulite Lab 2024. 3. 9. 00:59

Java - java.util.Date를 java.sql.Date로 변환하는 방법

Java 애플리케이션에서는 종종 날짜를 다루어야 할 때가 있습니다. 때로는 java.util.Date와 java.sql.Date 사이를 변환해야 할 때도 있습니다. 여기서는 java.util.Date를 java.sql.Date로 변환하는 여러 가지 방법을 알아보겠습니다.

1. java.sql.Date의 생성자 사용

java.sql.Date는 java.util.Date의 하위 클래스이므로 간단히 java.sql.Date의 생성자를 사용하여 변환할 수 있습니다.

java.util.Date utilDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());

2. valueOf() 메서드 사용

java.sql.Date 클래스에는 static 메서드인 valueOf()를 사용하여 문자열로부터 날짜를 생성하는 메서드가 있습니다.

java.util.Date utilDate = new java.util.Date();
java.sql.Date sqlDate = java.sql.Date.valueOf(utilDate.toString());

3. setTime() 메서드 사용

java.sql.Date는 java.util.Date의 하위 클래스이므로 setTime() 메서드를 사용하여 변환할 수 있습니다.

java.util.Date utilDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(0);
sqlDate.setTime(utilDate.getTime());

4. Calendar 클래스 사용

Calendar 클래스를 사용하여 java.util.Date를 java.sql.Date로 변환할 수도 있습니다.

java.util.Date utilDate = new java.util.Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(utilDate);
java.sql.Date sqlDate = new java.sql.Date(calendar.getTimeInMillis());

5. LocalDate와 Instant를 사용하는 방법

Java 8 이상에서는 LocalDate와 Instant를 사용하여 변환할 수 있습니다.

java.util.Date utilDate = new java.util.Date();
LocalDate localDate = utilDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
java.sql.Date sqlDate = java.sql.Date.valueOf(localDate);

6. SimpleDateFormat을 사용하는 방법

SimpleDateFormat 클래스를 사용하여 java.util.Date를 문자열로 변환한 다음 다시 java.sql.Date로 변환할 수 있습니다.

java.util.Date utilDate = new java.util.Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
java.sql.Date sqlDate = new java.sql.Date(sdf.parse(sdf.format(utilDate)).getTime());