Java の java.util.date を java.sql.date に変換する

Rupam Yadav 2023年10月12日
  1. java.util.Date から java.sql.Date に変換するには、getTime() を用いる
  2. SimpleDateFormatvalueOf() を用いて java.util.Date から java.sql.Date に変換する
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 は、JDBC が理解できる SQL 形式の日付のみを伝える。SQL の日付には年、月、日しか含まれておらず、時間とタイムゾーンは存在しません。

java.util.Date から java.sql.Date に変換するには、getTime() を用いる

最初の例では、java.util.Date クラスの getTime() メソッドを用います。getTime() メソッドを呼び出すと、1970 年 1 月 1 日 00 時 00 分 00 秒 GMT からの経過時間をミリ秒単位で返します。まず、java.util.Date のオブジェクトを作成して getTime() メソッドを呼び出す。

次に、コンストラクタの引数にミリ秒を受け入れる java.sql.Date オブジェクトを作成します。timeInMilliSeconds を渡すと、java.sql.Date 型の date1 が得られます。

import java.util.Date;

public class UtilDateToSqlDate {
  public static void main(String[] args) {
    Date date = new Date();

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

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

出力:

SQL Date: 2021-01-22

SimpleDateFormatvalueOf() を用いて java.util.Date から java.sql.Date に変換する

java.util.Datejava.sql.Date に変換するもう一つのメソッドは valueOf() です。これは java.sql.Date クラスに存在する静的メソッドです。valueOf() は文字列型の引数を取ります。これが java.util.Date を文字列に変換する理由です。

java.util.Date は時間とともに日付を返すので、java.sql.Date が受け取る日付を yyyy-MM-dd としてフォーマットします。日付をフォーマットするには、SimpleDateFormat のオブジェクトを作成し、そのコンストラクタにフォーマットを渡します。そして、simpleDateFormat.format(date) を呼び出し、引数に日付を渡して書式設定を行います。

最後に、引数として valueOf() に渡すことができる文字列として日付を取得し、結果を java.sql.Date として取得します。

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

public class UtilDateToSqlDate {
  public static void main(String[] args) throws IllegalArgumentException {
    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("SQL Date: " + date1);
  }
}

出力:

SQL Date: 2021-01-22
著者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

関連記事 - Java DateTime