web-dev-qa-db-fra.com

Comment convertir Joda Localdate en Joda DateTime?

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.

51
Simon Gibbs

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

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.

73
skaffman