Java 如何将Joda Localdate转换为Joda DateTime?

Java 如何将Joda Localdate转换为Joda DateTime?,java,timezone,jodatime,Java,Timezone,Jodatime,在执行更多计算之前,我试图简单地将时区信息添加回LocalDate。LocalDate源于使用ObjectLab LocalDateCalculator向现有日期时间添加天数,但该方法需要返回修改后的ReadableInstant以形成一个间隔,然后我可以检查该间隔 我尝试的代码相当于将Joda LocalDate转换为Joda DateTime: LocalDate contextLocalBusinessDate = calculator.getCurrentBusinessDate();

在执行更多计算之前,我试图简单地将时区信息添加回LocalDate。LocalDate源于使用ObjectLab LocalDateCalculator向现有日期时间添加天数,但该方法需要返回修改后的ReadableInstant以形成一个间隔,然后我可以检查该间隔

我尝试的代码相当于将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)
java.lang.IllegalArgumentException:找不到类型为org.joda.time.LocalDate的即时转换器
位于org.joda.time.convert.ConverterManager.getInstantConverter(ConverterManager.java:165)
位于org.joda.time.base.BaseDateTime。(BaseDateTime.java:147)
位于org.joda.time.DateTime(DateTime.java:192)

我正在寻找解决此问题的方法,或者寻找一种解决方法,以获得完整时区信息的准确时间间隔。

有多种方法可以解决此问题,包括:


您必须明确表示希望时间组件在生成的
DateTime
对象中是什么,这就是为什么
DateTime
的常规转换构造函数不能做到这一点。

。有一件事需要注意:ToDateTimeAtStarToDay并不意味着“午夜”。。。某些时区实施夏时制更改,从午夜跳到凌晨1点。您可能会像我一样得出结论,您选择的方法(所有返回日期时间,如此处所示)中的哪一种并不重要:使用LocalDate的事实应该意味着它是在该日期的特定时间编写的,没有任何意图,所以,无论你在那个日期的转换中给出什么时间,都和那个日期的其他时间一样好。关键是,给它一个时间是允许转换为LocalDate的因素,如果您只需要某种DateTime,那么时间是什么并不重要(因为您从一个不关心时间的LocalDate开始)。请帮助-我在LocalDate对象上看不到任何这种方法。你的答案中的“::”符号是什么意思?