Java の java.util.date を java.sql.date に変換する
-
java.util.Date
からjava.sql.Date
に変換するには、getTime()
を用いる -
SimpleDateFormat
とvalueOf()
を用いてjava.util.Date
からjava.sql.Date
に変換する
この記事では、java.util.Date
を java.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
SimpleDateFormat
と valueOf()
を用いて java.util.Date
から java.sql.Date
に変換する
java.util.Date
を java.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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn