J'essaie simplement de rajouter des informations TimeZone dans un LocalDate avant d'effectuer d'autres calculs. Le LocalDate est venu de l'utilisation de l'ObjectLab LocalDateCalculator pour ajouter 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'essaie équivaut à une conversion de Joda LocalDate en 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.<init>(BaseDateTime.Java:147)
at org.joda.time.DateTime.<init>(DateTime.Java:192)
Je recherche 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
pour cela, notamment:
LocalDate::toDateTimeAtCurrentTime()
LocalDate::toDateTimeAtStartOfDay()
LocalDate::toDateTime( LocalTime )
LocalDate::toDateTime( LocalTime , DateTimeZone )
Vous devez être explicite sur ce que vous voulez que le composant temps soit dans l'objet DateTime
résultant, c'est pourquoi le constructeur de conversion générale de DateTime
ne peut pas le faire.