2011-01-11 7 views
44

私はいくつかの計算を実行する前に、TimeZone情報をLocalDateに単純に追加しようとしています。 LocalDateは、ObjectLab LocalDateCalculatorを使用して、既存のDateTimeに日数を追加することから来ましたが、メソッドは、変更可能なReadableInstantを返す必要があります。Joda LocaldateをJoda DateTimeに変換する方法ですか?

私はジョダのDateTimeにジョダLOCALDATEの変換量をしようとしているコード:

私が手にエラーがジョダの変換システムからである
LocalDate contextLocalBusinessDate = calculator.getCurrentBusinessDate(); 
DateTime businessDateAsInContextLocation = new DateTime(contextLocalBusinessDate, contextTimeZone); 

:私が探している

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) 

この問題の修正プログラム、または完全なタイムゾーン情報を含む正確な間隔になる回避策が含まれています。あなたが望むものを明示する必要が

答えて

66

には、このためのLocalDate上のさまざまな方法があります。再構成される時間コンポーネントその結果、DateTimeの汎用変換コンストラクタではできません。

+11

Spot on。注意すべきことの1つ:toDateTimeAtStartOfDayは「真夜中」を意味するものではありません。一部のタイムゾーンでは、夏時間の変更を実装して深夜から午前1時にスキップします。 –

+0

LocalDateが使用されたということは、あなたが選択したメソッドのうちどれが意図的にコード化されたのかを暗示するはずです。その日のコンバージョンに与えた時間は、その日の他の時間と同じくらい良いものです。重要なことは、LocalDateへの変換を可能にするものであり、必要なものが何らかのDateTimeであるならば、時間が何であっても(あなたがLocalDateで時間を気にしなかったので) 。 – cellepo

+0

お願いします。私のLocalDateオブジェクトでは、このメソッドのどれも見ることができません。答えに「::」という表記は何を意味しますか? –

関連する問題