我试图在执行更多计算之前将TimeZone信息简单地添加回LocalDate中。LocalDate来自使用ObjectLab LocalDateCalculator将天数添加到现有DateTime中,但是该方法需要返回修改后的ReadableInstant来形成一个Interval,然后可以检查该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
LocalDate::toDateTimeAtCurrentTime()
LocalDate::toDateTimeAtStartOfDay()
LocalDate::toDateTime( LocalTime )
LocalDate::toDateTime( LocalTime , DateTimeZone )
您必须明确说明希望时间分量位于结果DateTime对象中的原因,这就是为什么DateTimegeneral- conversion构造函数无法做到这一点。
DateTime