Java - java.util.Date를 java.sql.Date로 변환

java.util.Datejava.sql.Date의 차이점은

  • java.util.Date는 1970년 1월 1일 00:00:00 GMT 기준으로 계산된 시간 정보를 갖고 있으며, 년/월/일/시/분/초의 정보를 모두 갖고 있습니다.
  • java.sql.Date는 SQL 형식의 날짜 정보만 갖고 있습니다. SQL Date는 년/월/일 정보만 갖고 있고, 시/분/초 단위의 정보는 갖고 있지 않습니다.

이 글에서는 java.util.Datejava.sql.Date로 변환하는 방법을 소개합니다.

1. java.util.Datejava.sql.Date로 변환 (1)

java.util.Date에서 Millisecond 값을 가져와서 java.sql.Date 생성자의 인자로 전달하여 객체를 생성합니다.

import java.util.Date;

public class UtilDateToSqlDate {

    public static void main(String[] args) {

        Date date = new Date();

        long timeInMilliSeconds = date.getTime();
        java.sql.Date sqlDate = new java.sql.Date(timeInMilliSeconds);

        System.out.println("Util Date: " + date);
        System.out.println("timeInMilliSeconds: " + timeInMilliSeconds);
        System.out.println("SQL Date: " + sqlDate);
    }
}

Output:

Util Date: Mon Jan 31 19:29:25 KST 2022
timeInMilliSeconds: 1643624965100
SQL Date: 2022-01-31

2. java.util.Datejava.sql.Date로 변환 (2)

java.util.Date 객체에서 SimpleDateFormat으로 "yyyy-MM-dd" 형식의 문자열을 만들고, 이 문자열을 java.sql.Date.valueOf()의 인자로 전달하여 객체를 생성합니다.

import java.text.SimpleDateFormat;
import java.util.Date;

public class UtilDateToSqlDate2 {

    public static void main(String[] args) {

        Date date = new Date();

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        String formattedDate = simpleDateFormat.format(date);
        java.sql.Date date1 = java.sql.Date.valueOf(formattedDate);

        System.out.println("Util Date: " + date);
        System.out.println("formattedDate: " + formattedDate);
        System.out.println("SQL Date: " + date1);
    }
}

Output:

Util Date: Mon Jan 31 19:25:43 KST 2022
formattedDate: 2022-01-31
SQL Date: 2022-01-31

References

Loading script...
codechachaCopyright ©2019 codechacha