web-dev-qa-db-fra.com

Comment convertir Joda LocalDate en Java.util.Date?

Quelle est la façon la plus simple de convertir un JodaTime LocalDate en Java.util.Date objet?

55
Eric Wilson

JodaTime

Pour convertir org.joda.time.LocalDate en JodaTime Java.util.Date , faites

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

Pour convertir org.joda.time.LocalDateTime en JodaTime Java.util.Date , faites

Date date = localDateTime.toDate();

JavaTime

Pour convertir Java8 Java.time.LocalDate en Java.util.Date , faites

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

Pour convertir Java8 Java.time.LocalDateTime en Java.util.Date , faites

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

Vous pourriez être tenté de le raccourcir avec LocalDateTime#toInstant(ZoneOffset), mais il n'y a pas d'API directe pour obtenir le décalage de zone par défaut du système.

Pour convertir Java8 Java.time.ZonedDateTime en Java.util.Date , faites

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

Depuis la version 2.0, LocalDate a une méthode toDate ()

Date date = localDate.toDate();

Si vous utilisez la version 1.5 - 2.0, utilisez:

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

Sur les anciennes versions, vous vous retrouvez avec:

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

Vous aurez besoin d'un fuseau horaire.

LocalDate date = ...

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

Peut être ça?

localDate.toDateTimeAtCurrentTime().toDate();
6