いくつかの計算を実行する前に、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)
この問題の修正、または完全なタイムゾーン情報を含む正確な間隔が得られる回避策を探しています。
LocalDate
には、次のようなさまざまなメソッドがあります。
LocalDate::toDateTimeAtCurrentTime()
LocalDate::toDateTimeAtStartOfDay()
LocalDate::toDateTime( LocalTime )
LocalDate::toDateTime( LocalTime , DateTimeZone )
結果のDateTime
オブジェクトに時間コンポーネントを含めることを明示する必要があるため、DateTime
の汎用変換コンストラクターではできません。