여기서 물어 본 것과 매우 유사한 것을 다루고 있습니다. - compare Joda-Time time zones하지만 나에게는 적합하지 않습니다. 나는 위의 두 SYSOUT 문에서 'false'로 얻을 흥미롭게두 개의 Joda-Time DateTime 오브젝트 비교하기
DateTime estDT = new DateTime(DateTimeZone.forID("America/Puerto_Rico")).withMillisOfSecond(0);
DateTime londonDT = new DateTime(DateTimeZone.forID("Europe/London")).withMillisOfSecond(0);
System.out.println("Comparison " + londonDT.isBefore(estDT));
System.out.println("Comparison " + londonDT.isAfter(estDT));
-
여기에 내가 함께 Joda-TimeDateTime을 테스트입니다 코드 조각입니다. 누구든지이 비교를 수행하는 올바른 방법이 무엇인지 설명해 주시겠습니까?
같다. 두 개의 코드 라인은 컴퓨터 시계의 두 가지 샘플링을 의미하므로 두 번째 라인은 첫 번째 라인보다 늦게 발생했습니다. DateTime은 밀리 초의 해상도를 가지고 있기 때문에 두 코드 줄이 컴퓨터의 시계와 동일한 밀리 초 내에 실행되면 서로 동일하게됩니다. 이것은 순수 운 (기회)입니다. Java 스레드가 실행 중에 지연/일시 중지되었는지 또는 더 느린 컴퓨터에서 실행되었는지에 따라이 두 DateTimes가 다를 수 있습니다. –
우리 둘 다 너무 강했습니다. withMillisOfSecond (0)를 호출하면 두 개의 * 아마 같은 시간을 나타낼 것입니다. 그러나 다른 초 (예 : millis = 999 및 millis = 0)에서 실행되는 경우 다를 수 있습니다. 똑같은 시간이 실제로 필요하다면, withZone() 메소드는 순간을 두 번 얻는 것보다 더 신뢰할 수 있습니다. 그러나 OP가 입력으로 제공되는 두 가지 다른 인스턴스를 제 시간에 원하는 경우가 많습니다. –