web-dev-qa-db-ja.com

Joda LocaldateをJoda DateTimeに変換する方法は?

いくつかの計算を実行する前に、TimeZone情報をLocalDateに追加し直そうとしています。 LocalDateは、ObjectLab LocalDateCalculatorを使用して既存のDateTimeに日数を追加することから派生しましたが、メソッドは、変更可能なReadableInstantを返してIntervalを形成する必要があります。

私が試しているコードは、Joda LocalDateからJoda DateTimeへの変換に相当します:

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

私が得るエラーは、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)

この問題の修正、または完全なタイムゾーン情報を含む正確な間隔が得られる回避策を探しています。

51
Simon Gibbs

LocalDate には、次のようなさまざまなメソッドがあります。

結果のDateTimeオブジェクトに時間コンポーネントを含めることを明示する必要があるため、DateTimeの汎用変換コンストラクターではできません。

73
skaffman