2016-10-08 2 views
1

Joda 시간을 사용하여 2 번 차이를 찾으려고합니다. 여기에 몇 가지 예제를 사용하여 시도했지만 반환 값을 얻을 수 없습니다. 여기에 내가 무엇을 시도했다입니다 : 시간이 17시 23분 같은 형식이고 및 변수에서 나는 서로 다른 방법을 사용하여 시도했다2 DateTime 개체 사이의 Joda 시간의 시간 차이를 찾으려고

DateTime dtFrom = DateTime.now() 
    DateTime dtTo = new DateTime(dtFrom.withZone(DateTimeZone.forID(to))); 
    //calculate time difference 
    Period period = new Period(dtTo, dtFrom) ; 
    Minutes minutes = Minutes.minutesBetween(dtFrom, dtTo); 
    long diffInMillis = dtFrom.getMillis() - dtTo.getMillis(); 

미국/로스 엔젤레스이나 유럽/런던 같은 시간대에있는 경우 이 두 가지를 비교하고 항상 반환 된 값을 얻지 못합니다 ... 기간 반환 PT0S, 분 반환 PT0M, diffInMillis는 0을 반환합니다. 여기서 내가 뭘 잘못하고 있니? 감사!

+0

> 기간 기간 = 새 기간 (dtTo, dtFrom); 여기에 잘못된 순서가있는 것 같습니다. dtTo와 dtFrom을 교환하십시오. – Okas

답변

2

withZone()(POSIX) 인스턴트을 1970-01-01T00 : 00Z부터 밀리 초로 보존합니다. 따라서 dtFromdtTo은 동일한 시간대 표현이 다른 시간대로 인해 다르지만 동일한 글로벌 시간을 설명하는 것과 동일한 즉석 의미를 갖습니다.

결과 : 두 인스턴트 간의 차이는 사용하는 시간 단위와 관계없이 0입니다.

그러나 지역 시간차에 관심이 있다면 대신 getOffset() 메서드를 사용하여 영역 오프셋 차이를 확인하십시오.

+0

예, 완벽하게 작동했습니다. 나는 두 번을 비교하기 위해 참조 점이 필요하다고 생각한다. 도와 주셔서 감사합니다. @Meno –

관련 문제