如何把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
的通用转换构造函数不能这样做。