Existe-t-il un moyen simple de convertir un objet LocalDate
(introduit avec Java 8) en objet Java.util.Date
?
Par simple, j'entends plus simple que cela:
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
ce qui me semble un peu gênant.
Puisque nous ne sommes intéressés que par la partie date et qu'il n'y a pas d'informations de fuseau horaire dans aucun des objets, pourquoi introduire explicitement les fuseaux horaires? L'heure de minuit et le fuseau horaire par défaut du système doivent être pris implicitement pour la conversion.
Date -> Date locale:
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate -> Date:
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
Date to LocalDate
Date date = new Date();
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
Date locale à ce jour
LocalDate localDate = LocalDate.now();
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
Conversion de LocalDateTime en Java.util.Date
LocalDateTime localDateTime = LocalDateTime.now();
ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneOffset.systemDefault());
Instant instant = zonedDateTime.toInstant();
Date date = Date.from(instant);
System.out.println("Result Date is : "+date);