LocalDateをSQL Date Javaに変換する方法は?


95

LocalDateをに変換するにはどうすればよいjava.sql.Dateですか?

試み:

Record r = new Record();
LocalDate date = new Date(1967, 06, 22);
r.setDateOfBirth(new Date(date));

これは失敗し(コンパイルされません)、見つけることができるのはJoda時間のものだけです。

Java 8を使用しています



2
@assyliasリンクされた質問の答えは、ここで与えられたものよりも優れていますか?他の質問はこれの複製として閉じられるべきであり、その逆ではありません。
Madara's Ghost

1
@SecondRikudoの複製は、LocalDateからDateに、またはその逆に変換する方法を示しているため、より一般的です。
アッシリア2015

回答:


168

答えは本当に簡単です。

import java.sql.Date;
...
LocalDate locald = LocalDate.of(1967, 06, 22);
Date date = Date.valueOf(locald); // Magic happens here!
r.setDateOfBirth(date);

逆に変換したい場合は、次のようにします。

Date date = r.getDate();
LocalDate localD = date.toLocalDate();

rJOOQで使用し.getDate()ているレコードで、レコードから日付を取得する方法です。たとえば、date_of_birthという日付列があるとしgetDateOfBirth()ます。次に、getメソッドを呼び出す必要があります。


4
これはjava.timeに応じて「恐ろしいハック」です*著者:stackoverflow.com/questions/33066904/...
Dherik

14
あなたについての質問にしているreffering java.util.Date ないで java.sql.Dateこの質問についてです。
Gemtastic

0

現在の日付が必要な場合:

Date date = Date.valueOf(LocalDate.now());

特定の日付が必要な場合:

Date date = Date.valueOf(LocalDate.of(1967, 06, 22));

1
これは、現在の時刻が必要な場合、特定の日付が必要な場合にのみ高速になります。これは、誰かの生年月日を扱っている場合など、これはまったく機能しません。
Gemtastic 2017年

はい、たとえば、オブジェクトを作成し、作成日を永続化したい場合など、現在の日付を挿入します。
RichardK 2017年

元の質問はすべて特定の日付を作成することに関するものなので、どちらに注意することが重要です。これは、世の中にあるすべてのコピーペースト用のメモです。Date date = Date.valueOf(LocalDate.of(1967, 06, 22));「より速く」したい場合は、正しい答えを1行にまとめることができます。
Gemtastic 2017年

-1

LocalDateのtoDate()メソッドを使用してみましたか?

のように:

Record r = new Record();
LocalDate date = new Date(1967, 06, 22);
r.setDateOfBirth(date.toDate());

一般に、単に「失敗する」と言うのではなく、失敗する方法を指定することをお勧めします。


正直なところ、グーグルで見つけられるように、質問を投稿して私の回答を投稿しました。goodleにはこの質問や答えがなかったので、自分で考えなければなりませんでした。
Gemtastic 2015年

6
さて、今あなたは2つの答えを持っています、より多くの陽気な人。自分の投稿への回答に問題はないと思います。
ジュリスト、2015年

私の将来の誰かの助けになることを願っています。
Gemtastic 2015年

2
OPは「[…]私が見つけることができるのはJoda時間のものだけです。私はJava 8を使用しています。ただし、答えは、Java 8の答えではなく、Jodaに関するものです。
Michael Piefel

1
LocalDate.toDate()は、JodaバージョンのLocalDateにのみ存在し、標準ライブラリバージョンには存在しません。
Rörd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.