Java.time.LocalDate
を Java.util.Date
typeに変換したいのですが。日付をJDateChooser
に設定したいからです。または Java.time
datesをサポートする日付選択ツールはありますか?
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
それはあなたの日付選択が日付を文字列に変換するためにシステムデフォルトタイムゾーンを使用すると仮定します。
これは私が新しいJava.time
クラスをJava.util.Date
オブジェクトに、またその逆に変換するために使用するユーティリティクラスです。
import Java.time.Instant;
import Java.time.LocalDate;
import Java.time.LocalDateTime;
import Java.time.ZoneId;
import Java.util.Date;
public class DateUtils {
public static Date asDate(LocalDate localDate) {
return Date.from(localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
}
public static Date asDate(LocalDateTime localDateTime) {
return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
}
public static LocalDate asLocalDate(Date date) {
return Instant.ofEpochMilli(date.getTime()).atZone(ZoneId.systemDefault()).toLocalDate();
}
public static LocalDateTime asLocalDateTime(Date date) {
return Instant.ofEpochMilli(date.getTime()).atZone(ZoneId.systemDefault()).toLocalDateTime();
}
}
@Olivのコメントに基づいて編集しました。
Java.sql.Date.valueOf()
メソッドは次のように使用できます。
Date date = Java.sql.Date.valueOf(localDate);
ここには時間と時間帯の情報を追加する必要はありません。それらは暗黙のうちに取られるからです。
LocalDateからJava.util.Dateへの変換およびその逆の最も簡単な変換を参照してください。
Java.timeにはTemporalインタフェースがあり、ほとんどの時間クラスからInstantオブジェクトを作成するのに使用できます。 Instantは、Epochのタイムライン上のミリ秒を表します。他のすべての日付と時刻の基本参照です。
変換を行うには、TimeをZoneとZoneでZonedDateTimeに変換する必要があります。
LocalDate ldate = ...;
Instant instant = Instant.from(ldate.atStartOfDay(ZoneId.of("GMT")));
Date date = Date.from(instant);
Java.time.LocalDate から Java.util.Date を作成するためには、
コードは次のようになります。
LocalDate localDate = LocalDate.now();
Date date = new Date(localDate.atStartOfDay(ZoneId.of("America/New_York")).toEpochSecond() * 1000);
これは私のために働く:
Java.util.Date d = new SimpleDateFormat("yyyy-MM-dd").parse(localDate.toString());
https://docs.Oracle.com/javase/8/docs/api/Java/time/ LocalDate.html#toString--
コトリンソリューション:
1)この拡張機能をどこかに貼り付けます。
fun LocalDate.toDate(): Date = Date.from(this.atStartOfDay(ZoneId.systemDefault()).toInstant())
2)それを使用し、二度とこれをグーグルしないでください。
val myDate = myLocalDate.toDate()