Je suis nouveau dans le package Java.time. J'ai un LocalDate 2015-12-10. J'ai besoin de convertir ceci en ZonedDateTime. L'heure doit être 00:00:00 et Zone est ZoneOffset.UTC.
Après la conversion, ZonedDateTime doit être 2015-12-10T00: 00: 00 + 02: 00.
Je stocke le LocalDate dans une variable appelée startDate.
J'ai essayé:
ZonedDateTime.ofInstant(Instant.from(startDate), ZoneOffset.UTC)
mais obtenez l'erreur
Java.time.DateTimeException: impossible d'obtenir Instant de TemporalAccessor: 2015-12-10 de type Java.time.LocalDate]
J'ai aussi essayé:
startDate.atStartOfDay().atZone(ZoneOffset.UTC)
Cela donne des résultats inattendus.
J'ai regardé l'API et essayé quelques autres méthodes, mais pas de chance jusqu'à présent.
Existe-t-il un autre moyen de convertir LocalDate en ZonedDateTime?
Lors de la conversion d'objets moins spécifiques en objets plus spécifiques, utilisez les méthodes 'at':
ZonedDateTime zdt = startDate.atStartOfDay(ZoneOffset.UTC);
Passer l'offset UTC n'entraînera pas un résultat de 02:00, ce qui suggère que vous essayez de réaliser autre chose.
Je suppose que la question n'est plus pertinente, mais pour les besoins de Google:
LocalDate localDate = LocalDate.parse("2017-07-22");
ZonedDateTime zonedDateTime = localDate.atStartOfDay(ZoneId.systemDefault());
// => 2017-07-22T00:00+05:30[Asia/Kolkata]
source https://beginnersbook.com/2017/10/Java-convert-localdate-to-zoneddatetime/