Как конвертировать Joda LocalDate в java.util.Date? - PullRequest
55 голосов
/ 08 апреля 2011

Какой самый простой способ преобразовать объект JodaTime LocalDate в java.util.Date объект?

Ответы [ 5 ]

69 голосов
/ 08 апреля 2011

JodaTime

Чтобы преобразовать JodaTime's org.joda.time.LocalDate в java.util.Date, выполните

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

Чтобы преобразовать JodaTime's org.joda.time.LocalDateTime в java.util.Date, do

Date date = localDateTime.toDate();

JavaTime

Для преобразования Java8 java.time.LocalDate в java.util.Date, do

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

Чтобы преобразовать Java8 java.time.LocalDateTime в java.util.Date, do

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

Возможно, вы захотите сократить его с помощью LocalDateTime#toInstant(ZoneOffset), но прямого API для получения смещения зоны по умолчанию в системе нет.

Для преобразования java.time.ZonedDateTime в Java8 java.util.Date, до

Date date = Date.from(zonedDateTime.toInstant());
10 голосов
/ 08 октября 2013

Начиная с версии 2.0 LocalDate имеет метод toDate ()

Date date = localDate.toDate();

При использовании версии 1.5 - 2.0 используйте:

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

В более старых версиях выосталось:

Date date = localDate.toDateMidnight().toDate();
10 голосов
/ 08 апреля 2011

Вам понадобится часовой пояс.

LocalDate date = ...

Date utilDate = date.toDateTimeAtStartOfDay( timeZone ).toDate( );
6 голосов
/ 08 апреля 2011

Может быть, это?

localDate.toDateTimeAtCurrentTime().toDate();
0 голосов
/ 23 июля 2014

Попробуйте это.

новая дата (localDate.toEpochDay ())

...