2011-01-11 4 views
44

더 많은 계산을 수행하기 전에 TimeZone 정보를 LocalDate에 다시 추가하려고합니다. LocalDate는 ObjectLab LocalDateCalculator를 사용하여 기존 DateTime에 요일을 추가했으나 메서드에서 수정 된 ReadableInstant를 반환하여 검사 할 수있는 간격을 형성해야합니다.Joda Localdate을 Joda DateTime (으)로 변환하는 방법?

내가 Joda 날짜 시간에 Joda LOCALDATE의 전환 금액을 시도하고 코드 :

내가 오류가 Joda의 변환 시스템에서입니다
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 다양한 방법이 있습니다 다시 구성 할 시간 구성 요소 sulting DateTime 개체입니다, 그래서 DateTime의 일반 변환 생성자는 그것을 할 수 없습니다.

+11

Spot on. 한가지주의해야 할 점 : toDateTimeAtStartOfDay는 "자정"을 의미하지 않습니다 ... 일부 시간대는 자정부터 오전 1 시까 지 건너 뛰도록 일광 절약 시간 변경을 구현합니다. –

+0

당신이 선택한 것처럼 결론을 내릴 수 있습니다. 여기서는 선택한 모든 DateTime을 반환하는 메서드 중 어떤 것이 중요하지 않은지를 결론 지을 수 있습니다. LocalDate가 사용되었다는 사실은 특정 지역에 대한 의도없이 코딩되었음을 암시해야합니다 해당 날짜의 전환으로 인해 전환 일에 부여한 시간은 해당 날짜의 다른 시간만큼이나 좋습니다. 핵심은 시간을주는 것이 LocalDate 로의 변환을 가능하게하는 것이며 시간이 무엇인지는 중요하지 않다는 것입니다 (시간에 관심이없는 LocalDate로 시작한 이후). 필요한 것은 일종의 DateTime입니다 . – cellepo

+0

도와주세요 - 내 LocalDate 개체에서이 메서드 중 하나를 볼 수 없습니다. 답안에서 '::'표기법은 무엇을 의미합니까? –

관련 문제