자바의 두 Date 객체들 사이의 차이를 어떻게 계산하나요?
조회수 2823회
스칼라에서 특정 Date 객체와 현재 시간의 차이를 계산하기 위해서 자바의 java.util.Date 클래스를 사용하고 있습니다. 다음과 같이 getTime() 메소드를 사용해서 그 차이를 계산할 수 있다는 것을 알고 있습니다.
(new java.util.Date()).getTime() - oldDate.getTime()
그런데, 이 결과는 Long 타입의 밀리센컨드 수입니다. 시간 차이를 얻을 수 있는 간단한 더 좋은 방법이 있나요?
1 답변
-
JDK의
Date
클래스의 API는 자바가 처음 만들어졌을 때 고안된 정의입니다. 그래서 부족한 기능들이 많지요. 저는 Joda Time 라이브러리를 사용하는 것을 권합니다.Joda Time은 시간 간격의 개념을 정의하였습니다.:
Interval interval = new Interval(oldTime, new Instant());
Joda는 두 가지 컨셉을 갖고 있습니다.: 두 타임 객체에 사이의 시간 간격을 표현하는
Interval
(예: 오전 8시와 오전 10시 사이의 시간)과 실제 시간 경계가 없이 시간이 길이를 표현하는Duration
(예: 2시간!)을 정의하였습니다.단지 시간 차이를 계산하기 원한다면, Comparable.compareTo()를 사용하여
Comparable
인터페이스를 구현한 대부분의Date
클래스를 사용하셔도 됩니다.
댓글 입력