如何把Joda Localdate转换成Joda DateTime?

我正在尝试简单地将时区信息添加到LocalDate中,然后再执行一些计算。 LocalDate来自使用ObjectLab LocalDateCalculator添加date到现有的DateTime,但该方法需要返回一个修改的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) 

我正在寻找一个解决这个问题的办法,或者是一个解决scheme,它能够得到一个精确的带有完整时区信息的区间。

LocalDate上有多种方法,包括:

  • LocalDate::toDateTimeAtCurrentTime()
  • LocalDate::toDateTimeAtStartOfDay()
  • LocalDate::toDateTime( LocalTime )
  • LocalDate::toDateTime( LocalTime , DateTimeZone )

你必须明确你想要的时间组件是在生成的DateTime对象,这就是为什么DateTime的通用转换构造函数不能这样做。