web-dev-qa-db-ja.com

Joda LocalDateをJava.util.Dateに変換する方法は?

JodaTime LocalDateJava.util.Date オブジェクトに変換する最も簡単な方法は何ですか?

55
Eric Wilson

JodaTime

JodaTimeの _org.joda.time.LocalDate__Java.util.Date_ に変換するには、

_Date date = localDate.toDateTimeAtStartOfDay().toDate();
_

JodaTimeの _org.joda.time.LocalDateTime__Java.util.Date_ に変換するには、

_Date date = localDateTime.toDate();
_

JavaTime

Java8の _Java.time.LocalDate__Java.util.Date_ に変換するには、

_Date date = Date.from(localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
_

Java8の _Java.time.LocalDateTime__Java.util.Date_ に変換するには、

_Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
_

LocalDateTime#toInstant(ZoneOffset)で短くしたいかもしれませんが、システムのデフォルトゾーンオフセットを取得するための直接的なAPIはありません。

Java8の _Java.time.ZonedDateTime__Java.util.Date_ に変換するには、

_Date date = Date.from(zonedDateTime.toInstant());
_
69
BalusC

2.0バージョンのLocalDateには toDate() メソッドがあります

Date date = localDate.toDate();

バージョン1.5-2.0を使用している場合:

Date date = localDate.toDateTimeAtStartOfDay().toDate();

古いバージョンでは、次のものが残っています。

Date date = localDate.toDateMidnight().toDate();
10
maraswrona

タイムゾーンが必要になります。

LocalDate date = ...

Date utilDate = date.toDateTimeAtStartOfDay( timeZone ).toDate( );

たぶんこれ?

localDate.toDateTimeAtCurrentTime().toDate();
6