Comment convertir Joda Localdate en Joda DateTime?

J’essaie simplement d’append des informations TimeZone dans un LocalDate avant d’effectuer d’autres calculs. Le LocalDate est venu d’utiliser ObjectLab LocalDateCalculator pour append des jours à un DateTime existant, mais la méthode doit renvoyer un ReadableInstant modifié pour former un intervalle que je peux ensuite inspecter.

Le code que j’essaye équivaut à une conversion de Joda LocalDate à Joda DateTime:

LocalDate contextLocalBusinessDate = calculator.getCurrentBusinessDate(); DateTime businessDateAsInContextLocation = new DateTime(contextLocalBusinessDate, contextTimeZone); 

L’erreur que je reçois provient du système de conversion de Joda:

 java.lang.IllegalArgumentException: No instant converter found for type: org.joda.time.LocalDate at org.joda.time.convert.ConverterManager.getInstantConverter(ConverterManager.java:165) at org.joda.time.base.BaseDateTime.(BaseDateTime.java:147) at org.joda.time.DateTime.(DateTime.java:192) 

Je cherche une solution à ce problème, ou une solution de contournement qui se traduit par un intervalle précis avec des informations complètes sur le fuseau horaire.

Il existe différentes méthodes sur LocalDate , notamment:

  • LocalDate::toDateTimeAtCurrentTime()
  • LocalDate::toDateTimeAtStartOfDay()
  • LocalDate::toDateTime( LocalTime )
  • LocalDate::toDateTime( LocalTime , DateTimeZone )

Vous devez être explicite sur ce que vous voulez que le composant time soit dans l’object DateTime résultant, ce qui explique pourquoi le constructeur de conversion générale de DateTime ne peut pas le faire.